perm filename USERS.RLL[RDG,DBL]8 blob sn#634900 filedate 1982-01-13 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00029 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00004 00002	See all RLL.BBD[rdg,dbl], 
C00005 00003		Messages with Steve Klein (ISI)
C00037 00004		(klein, con't)
C00044 00005		(klein, con't)
C00066 00006		(klein, con't)
C00095 00007		(klein, con't)
C00102 00008		(klein, con't - then p.17)
C00107 00009	∂TO CSD.SMITH@SCORE (CC SKLEIN@ISIB) 14:37 10-Aug
C00108 00010		RLL Mini-Tutuorial - ca 3-7 August 1981 - Klein, Jonathan King, Greep
C00119 00011		Follow up conversations with Steve Klein (from 12-Aug-81 on)
C00132 00012		(klein, con't)
C00154 00013		(klein, con't)
C00189 00014	∂22-Sep-81  1613	Steve Klein <SKLEIN at USC-ISIB> 	smaller response to previous msg    
C00194 00015		(MANN at ISIB)
C00197 00016	∂TO SKLEIN@ISIB 10:06 28-Sept
C00211 00017	∂TO SKLEIN (CC MANN) 15:48 12-Oct
C00214 00018	∂TO SKLEIN 15:57 12-Oct
C00281 00019	∂19-Oct-81  1345	Steve Klein <SKLEIN at USC-ISIB> 	Reincarnation   
C00285 00020	∂TO SKLEIN 11:48 21-Oct
C00301 00021	∂ 1 Nov 1981 1241-PST	<GREINER>	Come and get it!
C00308 00022	∂06-Nov-81  1710	Steve Klein <SKLEIN at USC-ISIB> 	hmm...
C00314 00023	∂10 Nov 1981 1801-PST	<CSD.GREINER at SU-SCORE>	Macros, etc
C00327 00024	∂12-Nov-81  1515	Steve Klein <SKLEIN at USC-ISIB> 	oozing onwards  
C00332 00025	∂TO SKLEIN@ISIB (CC LENAT@PARC) 23:39 3-Dec
C00336 00026	∂TO SKLEIN@ISIB 12:01 22-Dec
C00340 00027	∂TO SKLEIN@ISIB 16:24 29-Dec-81
C00357 00028	∂TO SKLEIN@ISIB 13:25 8-Jan
C00373 00029	∂11-Jan-82  1745	MANN at USC-ISIB 	citing our use of RLL 
C00377 ENDMK
C⊗;
See all RLL.BBD[rdg,dbl], 
also ARCHIVE.RLL[rdg,dbl] for backed-up information
	Messages with Steve Klein (ISI)
∂14 Oct 1980 1323-PDT	Steve Klein <SKLEIN at USC-ISIB>	Re: minor details...
To: CSD.GREINER at SU-SCORE

Hmm...replies 12 levels deep seem to lose the flavor of their contents.  wrt
manual 1 vs manual 2, we would like to attempt "hands-on" type experience--
have you set up some mechanism for this?  That is, distribution of the system
or use there or ?? (is this info included in your documentation?).  If not too
late, I'd like to request two sets of the manuals--I'm trying to shove things 
at several people...
Steve.
-------
∂14 Oct 1980 1547-PDT	CSD.GREINER	Re: minor details...
To: SKLEIN at USC-ISIB
cc: csd.greiner

RLL-1 is fairly close to being distributable.  I've not released it yet as it
is still strewn with bugs and inconsistencies.  There is also some legal hassles
to be resolved - forms to sign and the like.
In the long term, the MRS system, by Genesereth & Smith, will be the official
bona fide Representation Language Language -- Mike claims it will be available,
sans bells and whistles (i.e. lacking any useful facility) some time in the next
few weeks. RLL-1 will thenafter be encoded in this system, for compatability
and transportability.
	I'll try to get you two sets of the manuals. Ask again if you don't
get both sets.
	God bless, and too-da-loo,
Russ
-------
∂22 Oct 1980 1509-PDT	Steve Klein <SKLEIN at USC-ISIB>	I see a ship on the horizon...
To: CSD⊗.Greiner at SU-SCORE

Hi.  Do you know which address got used for mailing the memos out?  Nothing
seems to have shown up here yet.
Steve.
-------
∂23 Oct 1980 2030-PDT	CSD.GREINER	Re: I see a ship on the horizon...
To: SKLEIN at USC-ISIB, CSD⊗.Greiner
In-Reply-To: Your message of 22-Oct-80 1509-PDT

Turns out only 25 memos have been sent out so far.  The rest (including,
apparently yours) will be sent soon (after the next batch come back from the
printer...)
	Russ
-------
∂28 Oct 1980 1407-PST	Steve Klein <SKLEIN at USC-ISIB>	paper snow
To: CSD⊗.Greiner at SU-SCORE

Hi.  Sorry for the bother, but the RLL-1 paper arrived yesterday, without
the "Details..." paper.  Could this be due to paper snarl/printing details,
or am I being over-anxious?
wit regardlets,
Steve.
-------
∂TO SKLEIN@USC-ISIB 14:05 3-Nov
Tap tap tap <yawn> tap tap tap ...
Steve - have they arrived yet?  (By now they REALLY should have...)
Also, if its not too much bother, please send comments to RDG@SAIL.
Anything interesting happening there?
	Russ

∂04-Nov-80  1324	Steve Klein <SKLEIN at USC-ISIB> 	Re: Tap tap tap <yawn> tap tap tap ...   
To: RDG at SU-AI

greetzings.  I haven't seen the innards paper yet...murphy's  law or the US 
mail has achieved self-awareness and is practicing selectivity.  Everything
here is mostly mundane...I wonder what the secret is to getting more done in
less time  (if you find out, maybe we could bottle it).  If Reagan wins I might
move to New Zealand--have you considered what you will do?
A foobar cocktail in your general direction.
Steve.
-------

∂07-Nov-80  2114	Steve Klein <SKLEIN at USC-ISIB> 	pretty pictures 
To: RDG at SU-AI

Howdy...just a quick note:  I got the memos yesterday. Thankks.
Onwards.
Steve.
-------

∂05-Nov-80  1051	PRESSBURGER at SCI-ICS   
To: rdg at su-ai

Date: Tuesday, 4 November 1980  15:29-PST
From: Steve Klein <SKLEIN at USC-ISIB>
To:   PRESSBURGER at SCI-ICS
Re:   delta

How does an elephant dance?  Music experiments from the point of an
expected sound or just manipulating the equipment...tape decks and loops
are notoriously limited in flexibility...the world needs some decent
computer based composition systems...sounds like a reasonable life/business/
phd thesis.  The notion of "knowing" what defines a proof, what a proof
entails, and the underlying knowledge that supports the notion of proof
seems one of the hairier issues I've seen in a while, although I seem to
recall that a major part of (some) philosophical garbage deals with this
in a very ad hoc manner...I haven't read any of Lenats new stuff, so can't
comment on its limitations.   Did you see any of the interviews with
"people on the street" last night?  Goddamn parrots...is everyone in the
world so stupid that they believe the stuff they see on TV?  If I hear one
more person say that "its time for a change" I'll amputate them at the knee.
I hope you kept your senses and didn't vote for Anderson.  The "video
revolution"  hopefully is the start of the downfall of our current way of
voting...when anyone can watch what goes on in congress there isn't as much
that you can get away with...not an exclusive club anymore.  Voting as
it now stands (pick one of 2/3/...) bears the same relation to expressing 
your opinion as X'ing a contract does to understanding it...ten years from
now we may see something different...unfortunately, the media stranglehold
may be even worse--the only bright spot is that current trends are away 
from centralized control.

There are some great cassette decks available for cheap now.  I bought my
parents a Technics one with solenoid controls, fluorescent peakreading meters,
less wow&flutter than my old Sony, metal tape capability, etc. for $260.
There are an amazing number of decks for $150-300 that are great (need to
use metal tape though to get around lower speed...not very cheap, although
compatible with reel-to-reel tape costs).  Sendust heads are reasonable, as
are ferrite...don't know that anyone has really pointed out real differences
in end recording quality...just have to stay away from normal permalloy heads.
45 minutes per side is still a problem, but I'd rather flip cassettes at that
rate than reels at ANY other rate.
Barry actually found that "treasure"--a copper plate under the Colorado St.
Bridge...got $100. from the place having the contest...really stupid set
of clues from an overall point of view (the idiot also made several mistakes).
Sandy is looking in earnest for a place to go back to school...police dept
really getting to her, however, I'm most likely going to stay around here for
the next year or two...interesting contest between too many options and not
wanting to do anything.   
Looks like both goodies I'm working on here may potentially end up in RLL/MRS.
Our hardware representation stuff is evolving into general VLSI design (I
think I mentioned that at some point previously)...most of the mechanisms
needed to do this are also common to all engineering design projects--
interesting to see what generalities could result...as I think I also mentioned
previously, one part of this looks just like a part of an automated
programming system or heuristic-based compiler...I'd like to get your 
opinions at some point on how you think the world should be organized.
The other stuff will probably be my masters thesis...a computational
framework for systemic grammars (the linguistic underpinnings of SHRDLU,
among other things, if you haven't seen anything on them). For the 
multi-paragraph English text generation stuff. End result will hopefully 
be nicely enough done that it can be turned on anything in the RLL system
(with appropriate concept-to-English expression mappings). Such grandiose
plans, sigh.
Steve.

∂Mailed to SKLEIN at USC-ISIB  18:13 9-March
... and you were about to give up ...
Steve -
Rejoice, rejoice, rejoice!  The MRS manual has gone to press, errors and
all.  All 35 pages will be mailed to you when it becomes available.

If you like I'll carry a copy thence 18-March.
I've a now-more-official-than-last-time-invitation to arrange to consult
at Rand, scheduled for 19-20 March.  Would you like to get together sometime
around then?

Russ

∂09-Mar-81  1822	Steve Klein <SKLEIN at USC-ISIB> 	Re: ... and you were about to give up ...     

Truly amazing...if you brought down a copy I wouldn't complain.  Doing 
something/whatever sounds reasonable if it doesn't conflict with your (any)
plans.  I don't think I have any problems in that respect.  I'll check and
get back to you.
Steve.
-------

∂30-Mar-81  1831	Steve Klein <SKLEIN at USC-ISIB> 	..oops..   
To: RDG at SU-AI

I seem to have misplaced the fact that you were coming this-a-way.  Oh, well...
how was you trip/consulting experience (assuming it occured)?  What's new
up your way...anyone you know poke holes in our "illustrious leader"? 
Steve.
-------

∂Mailed to SKEIN@USC-ISIB  14:30 31-Mar
Yak, Yak, Yak
The trip was good, if tiring.
The stuff at Rand looks financially rewarding, but not (yet) intellectually
stimulating.  I saw Fay and Bonnie whilst there, as well as 4/5 of my nuclear
family (yawn).

So how's by you?  You'll be overjoyed to know that at this very moment
(yes, right now!) your personal (almost autographed) 
copy of the MRS manual is meandering its way to your clutches --
really!
I was waiting for Mike to mail you a copy; and he assumed I was playing
postman.  Anyway, enjoy. (It's not all that interesting, but you'll find
that out soon enough...)
	Russ
	(klein, con't)
∂06-Apr-81  1612	Steve Klein <SKLEIN at USC-ISIB> 	Re: Yak, Yak, Yak    

<<<< ∂Mailed to Steve (CC Mike)  11:14 8-Apr >>>>
Answers, such as they are
Hi.  Sorry about the delay.  I got the paper the day after your message.
Thanks.  It is rather sparse stuff.  Have any of you written down a "game plan"
of any sorts?  The following (for example) are of most interest:

*****
Game plan:  Mike has a vast list of things he hopes MRS will be able to do,
one day.  Included are such diverse elements as {fear, surprise, ruthless
efficient and an...} preservations of invariants, proliferation of demons,
graceful agenda-driven process-interruption and -resumption, ...  Ask him
for the full list. (He, of course, wouldn't give it to you, but you can
at least annoy him with another reasonable request...)
*****


  > The relation between RLL and MRS, both short and long term

*****
RLL vs MRS:  Currently these are two distinct systems, each sitting on the
same CORLL foundation.  That's the way tey'll stay in the short term; eventually
I/we hope to find some slave labor to incorporate RLL into MRS, by making
an RLL-initializing module, which can be plugged into MRS's core.  (Volunteers?..)

For what it's worth, some Xerox people (led by your hero and mine, Mark Stefik
[isn't it annoying how many mono-syllabic, quadra-epistle male moniker there
are -- and they (we?) all seem working on this silly set of projects. Any, back
to the plot:]) began with MRS, but grew dissatisfied; with its code itself,
as best I can tell.  So begot LRS (for Little Representation System; cutely
sandwiched between Krs and Mrs, alphabetically.)  And so much for our maxim,
of halting the proliferation of similar but incompatible ...
*****

  > RLL/MRS's place in the structure of things at Stanford (support, interest,
       again long term expectations)

*****
Place in the sun: as long as either Lenat (hereafter DBL) or I am around there
will probably be continued interest in RLL;
ditto for MRG (an alias of Mike Genesereth) with respect to MRS.
As MRG has suckered slews of naive personel into using MRS, it will probably
even be supported for a while, whatever that means.  The Rand stuff will
keep me honest, wrt RLL.
DBL is currently EURISKOing in virgin LISP, by the way.  Eventually he hopes
to do the stuff in RLL, but thus far has found its time requirements too
stringent...
*****

  > Status of RLL examples (Hearsay-type, KLONE, etc.)--someone doing 
     something, waiting for volunteers, etc.

*****
<This answer is as sparse as the work done, except for meta-comments,
(and, of course, that last Meta-Meta-Comment [whoops, and that last
Meta-Meta-Meta-Comment {not to mention the preceding ....}]).>

I left the above part in to be cute - but actually I have found the need to
build up features of the Units package -- esp its inheritance (SPECS) relation,
of gradual refinement.
*****

  > Any urges to build general "real-world" type knowledge bases/rep-
     resentations (time {gak}, spatial location, events, general taxonomies)

*****
In EURISKO's eventualities, (or at least in DBL's conception of it,)
vast amounts of common sense will be available to this over system;
and this body of facts, heuristics, ... will grow daily, due to both 
input from various users, and EURISKO's introspective capabilities.

A paper I started to write an IJCAI paper a while back,
"spontaneously aborted" itself when it became apparent the poor
thing lacked anything which did more than resemble semantic content.
Its intent was to discuss EURISKO itself, and these issues, perhaps.
Anyway DBL and I may one day massage it into a reasonable shape.
If so I'll be able to suitable answer that question with a pointer to that
piece of paper.
*****

  > Mailing list / users group status

*****
I'm not sure what you want here.  Yes, there is a degenerate mailing list,
consisting of people I feel should get this sort of stuff, including you,
Tom, and Rick H-R.  Nobody from outside has contributed, yet.
*****

If you guys haven't formulated such "positions" yet, feel free to ignore.
We are finally getting down to a particular representation for the knowledge
delivery / text generation project (generally KLONE-like) and it would be
truly wasteful to generate another hack system (especially when a specific
goal is exportability).  Enjoy.
Steve.
-------

	(klein, con't)
∂21-Apr-81  1732	Steve Klein <SKLEIN at USC-ISIB> 	Sunshine and Light   
To: RDG at SU-AI

Somehow, MM asking (demanding) that I title everything is ridiculous (hmm...
I've never seen whether the Subject field goes away if blank...probably not).
Anywho, in the process of "selling" RLL to the powers-that-be the need that
emerges is for more toys to show.  What could I actually get my hands on
(*.exe, KB's, other unit descriptions, demos, random prose, ...), with what
restrictions?  We have an immediate need for something which shows handling of
events and event sequences (presumably the chemical spill type goodies, if
they still exist).  The gospel seems to be potent...no one has complained yet.
Have you written your anti-reagan letter for the day?
Steve.
-------

 ∂Mailed to SKLEIN  16:02 22-Apr
Thunderclods and Darkness
Hmm - to answer the easy question: yes, MM does NOT force you to en-subject
your messages.  Now for the hard stuff:

I'm elated the "word according to the prophet Steve" is so catchy.
I'm not quite sure how to go from here; what would best further RLL's cause.
The code still has bugs in it -- so what else is new?  
Its external appearance hasn't changed much
over the last n months -- unless you pull out your stop watch and observe
it cruising along at many times the speed it once had.
(That is, the amount of speed has increased; not the time spent for
a given task.)

My next step will further speed up the system -- making several functions
(like GetValue) macros; so the compiled code will be able to avoid dozens
of costly queries.
After that I'll code up a Units-like SPEC relation (gradual refinement),
which seems essential for a wide variety of tasks.  (Not only for the
SPILL stuff, but also for Rand's planner system; and from your description,
for your stuff as well.)

Let me ask this: does ISI have some (competent) manpower (well, person power)
which could be contributed towards the greater good of ...
There are a host of simple-ish chores which just take someone to sit
down and do it; and I've been unable to get any of the BS or MS students
sent my way up to speed.  Hence RLL's incompleteness.
And hence my reluctance to send a flawed copy ISI-bound.

Let me know.  Any messages for these parts -- eg to Tom, or ? ?
Did you know that Jon Nimitz is in India now?  
And what's this anti-Raygun stuff?  I mean, really, he's our president!
Mr Yankee-Doodle himself!  (Forgive me, I have to get in the spirit.
Rand's putting thru a security clearance on me now.)
Mom and Apple Pie!  My country 'tis of thee..

Russ

∂22-Apr-81  1701	Steve Klein <SKLEIN at USC-ISIB> 	Re: Thunderclods and Darkness       

Thunderclods only happen after bombing runs (to not witness would I like).
What is Nimitz doing in India?  Say hi to the world up there where appropriate
(when in doubt laze [for to refer to the instances of being lazy]).  Ignoring
your seekurity clearance aspirations for the moment (if they come by here will
I have stories to tell [rasp, rasp {as in the sound of dry hands colliding
torsion-wise}]) for what is a president except possibly someone to throw
mud-pies at?  Unfortunately, our cheap executive seems intent on not honoring
that tradition of silent clodhood, but insists on being a vocal clod (isn't
that poetic?).  By even suggesting otherwise (this is for rhetorical effect)
you are supporting the infidels (incidents of complaints concerning book
contents [censorship-wise] are up five-fold since January...).

Current status of things here (RLL) is that superiors consider it a good
tool from which to learn how to design OUR representations (aaaaargh!!!!).
The battle being fought is one of convincing that much time would be saved
by USING it in our plans rather than treating it as a model.  If that could
be accomplished, the three-to-five of us would (presumably) put time into
upgrading/fixing things as well as developing our own extensions (or trash,
depending on how things go...).  Consequently, the need is for AMMO to point
out that starting from scratch is a waste of time.   Anything I get from
you now need have no guaranteed status, but the directions in which things
have been extended (actions, control, "world"-knowledge) are important.
It's basically a selling situation with the other details to come later...
Steve.
-------

∂Mailed to SLKLEIN@ISIB 16:03 24-Apr
Answers, maybe...
Nimitz: Story, according to Bonnie, is: some broad juilted(sp) him, so
its off to the peace core (for want of a nearer French Foreign Legion).
SC: Nah, THEY wouldn't trouble you. Tom's on their list, but ...
RLL, and friends:  Well, the fact of the matter is RLL 'tain't yet
releasable; and even when it is I've got no real yen to maintain it.

In terms of Ammo (I kept trying to figure out what it was an acronym for...)
well, RLL does do Slots real good.  And soon will do general functions
as nicely.  What sort of demo would you like?
Would verbal contact be better than written?

Have you seriously considered MRS as a nucleus?  Why or why not?

	Russ

 ∂24-Apr-81  1631	Steve Klein <SKLEIN at USC-ISIB> 	Re: Answers, maybe...     

A nice subject title...if you make them general enough they are reusable
without indirection.

Our current view of "our" representation is based somewhat on KLONE...
intensional concepts vs. extensional individuals, roles with specifications
(for each role instance) of cardinality & value restrictions, one or more
inheritance mechanisms, etc., etc.....  It seems closer to the base state
of RLL than MRS.  If you don't see this as true, feel free to enlighten me.

Steve.
  
(Maintenance only exists if the assumption is that something is being
maintained)

-------

 ∂Mailed to SKLEIN  16:49 24-Apr
Idea:
Why don't you make up a list of things you want to represent, as well
as the sorts of inferencing/retrieval algorithm you need.
Send these (your tired, your huddled, your yearning masses ...
oops - you mean you're not from the security office? Never mind.)
over, and I'll try to cons up a RLL-ish encoding.  (I did this for
a set of some 20+ "facts" after the Expert Systems conference, which
I could mail you -- or have I done that already?)
The powers that be can likewise draw up their idealized KL1ish representations;
and then compare the results.

By the way, I do think your assessment of MRS is apt: it ain't got as many
goodies as RLL's got.  This is true both when comparing base states,
and sum total of available (respective) systems.

If you were to get RLL, how would I communicate fixes/updates/improvements
to you; and vice versa?  This is what I meant by maintenance.

	Ta-taa
Russ
!∂24-Apr-81  2329	Steve Klein <SKLEIN at USC-ISIB> 	Re: Idea:       

I haven't seen the results of the Expert Systems conf...i'll read anything
(once).  The powers-that-be are laboring under the viewpoint that there is
nothing wrong with casting things in concrete as long as you have a vague
idea of what you want.  I'm arguing towards ABSOLUTE (nice to be firm)
generality since we need to represent such things as events & event sequences,
times & time intervals, hypothetical circumstances, not to mention several
funny control regimes (assuming everything fits together) and who knows what
else...

I could (and will) send you a sample of the "hand-waving" level of stuff we
now have, along with the pseudo-strange properties it has.  If I can be
convincing to everyone else at this level then it doesn't matter that any
future flexibility is achieved (that comes for free).  People here are
not sure that the RLL approach to things buys them anything ("excess
generality...we don't need any of that..." type comments).

wrt maintenance, that is a standard hairy area & depends upon whether such
goodies are flowing both directions or not.  At an initial level, there
presumably need be no effort on the part of you people beyond answering
questions (our responsibility to snarf most-recent versions, keep our changes
modular, etc.).  The first problem occurs if we do "contract" debugging (ala
your previous msg) and you would like to get the fixes back.  The final level
of involvement would try to integrate what we do with what you do which could
conceivably be worse than the interaction problems the KRL-types mentioned
(since here we are talking about two totally independent systems).  I don't
know what your thoughts are on reasonable levels of interaction and benefit to
your goals up there.  I don't suppose our munging on your machine would be
politically feasible...

Steve.
-------

Mailed p11 of REPORT[rdg,dbl] to SKLEIN 12:50 25-Apr-81
!∂29-Apr-81  1042	Steve Klein <SKLEIN at USC-ISIB> 	for to collect facts...   
Date: 29 Apr 1981 1042-PDT
From: Steve Klein <SKLEIN at USC-ISIB>
Subject: for to collect facts...
To: RDG at SU-AI

greets...may your happinesses be daylike, etc...
briefly, how much room is there in the units address space (pages,
max unit limit, whatever) plus how much of interlisps basic address space
is unallocated in a vanilla rll?  the question came up and i had not the
slightest idea...
steve.
-------

 ∂Mailed to SKLEIN 13:11 29-Apr
...stcaf tcelloc ot rof
That's the advantage of CORLL - you can have as many units as you want.
They get swapped in as needed, and swapped out as "core" space demands.

How much space is in "core" initially depends on the version of LISP.
On the Diraldo, who know? and who cares?  It's way more than I'll need.
There seems to be less space on SCORE's InterLISP than on Rand-Ai's --
which indicates the disparity amoungst InterLisp implementations.
(IE I can only deduce the two versions start out with different amounts 
of unallocated pages.)

The additional "source code" needed to run RLL (beyond CORLL)
is rather distributed:
There are two compiled files - containing general utility stuff
and RLL specific stuff -- of sizes 56 and 38 disk pages, respectively.
The rest is buried in amongst the units.

That answer your question?
	Russ
!∂29-Apr-81  2241	Steve Klein <SKLEIN at USC-ISIB> 	Re: ...stcaf tcelloc ot rof    

actually...no.  "as many units as you want" is a rather large claim (you 
might gather from this that i haven't seen the CORLL manual yet).  i bet
you can't make 10 million units, if for no other reason then you can't
have that many pointers in general...do you have a number (1k, 10k, ?)?

the other question is a direct one of if you do a STORAGE] how many free
pages there are, plus roughly how much disappears for each unit (unless
the unit index is paged too)...this all from the tops-20 interlisp point
of view.

Steve
-------

 ∂Mailed to KLEIN, (CC DE2)  11:17 30-Apr
Partial spec
Limitations will probably be Atom Name size -- as that will probably be
exhausted before the available disk storage is.  (CORLL allows units to
be stored on such "peripheral storage" place, rather than "in core".)

Anyway, I now have about a thousand units in use; and have had no problem.
Next time I start up RLL I'll execute the (STORAGE) command.

Russ
!∂30-Apr-81  1734	Steve Klein <SKLEIN at USC-ISIB> 	what za chanze? 
Date: 30 Apr 1981 1734-PDT
From: Steve Klein <SKLEIN at USC-ISIB>
Subject: what za chanze?
To: RDG at SU-AI

What is the chance (he asks nicely) that you could find a copy of the CORLL
manual to zing down this-a-way (or a pointer if online there)?  I be much in
your debt given the publication dept's record of achievement...
Steve.

Support National Security (pause) take an MX missile to dinner.
-------

 ∂Mailed to SKLEIN 15:45 1-May
(Whoooosh)
It's on its way.  To answer your question, there is an excellent
chance of finding that manual ...
!∂12-May-81  1556	Steve Klein <SKLEIN at USC-ISIB> 	regrets or whatever  
Date: 12 May 1981 1520-PDT
From: Steve Klein <SKLEIN at USC-ISIB>
Subject: regrets or whatever
To: RDG at SU-AI

Hi.  Got your note (thanks for paper)...sorry I didn't call but Sandy's father
has been in for repairs so things have been a bit unusual...  Talk at you 
later.
Steve.
-------

 ∂Mailed to SKLEIN 11:46 15-May
Whatever, with or without regrets
No problem - as usual I was overly busy as well.  (Among other events
I saw "I Got my act together and am taking it on the road" in Hollywood,
with Bonnie.  It wasn't bad; but definately not worth the $. End review.)

Anyway, yes I got that challenge of things to represent; but have not had
the time to sit down and address it.  I hope to get to it by next week.

Anything else happening in parts south?  Hope Sandy's father's problems weren't
too severe; and that he's better...

Russ

 ∂15-May-81  1311	Steve Klein <SKLEIN at USC-ISIB> 	Re: Whatever, with or without regrets    

Only the normal wrinkles happening...what to do with my life, etc.  Any idea 
what you are going to do when you finish your degree?  Founding small companies
seems interesting but so does working for other people if interesting and pays
well (concession to real world...).  I think Barry and I are going to try
creating something to sell to see how that works...nearly everybody in the
Caltech CS dept is running around pursuing "outside interests".

Sandy's father had a lung tumor (benign) that they hacked out (take heed 
smokers of the world...your time will come) but he seems to be coming along
fine.

About time to discover the next place to live (they're selling this one out
from under us)...I hate it...

Steve.
-------

	(klein, con't)
∂01-May-81  1745	Steve Klein <SKLEIN at USC-ISIB> 	A Test of Wizardry   

Well...you asked for it...a piece of representation to (potentially) be
encoded in RLL.  I hope this isn't too large.  Let me know if you find
anything obstructionist or ambiguous.

Have you read any of Levesque's stuff and what you think?  The article I've
seen is the one in Findler's Associative Networks book.

Steve.

-----------------------------------------------
Preconditions:

  Our general context is the task of text production. The following is meant 
as (part of) a representation of the following sentence:
  
  "Jane Doe has cancelled her appointment with us on Wednesday morning."

Conventions:

Things in ALL←CAPITALS are Generic or Individual Concept Names.
 Generic Concepts can have subclasses (specified by the SuperC notation).
 Generic Concepts can be individuated (specified by the Isa notation).
 Individual Concepts represent extensional instances and cannot be
   subclassified or individuated.
 Concepts can have multiple "parent" concepts.
Things below concepts are Role Specifications, which consist of
   a Role Name plus {(Restrictions)} plus a {Role Filler}        {} => optional

Concept Names     =>  strictly handles
Role Names        =>  again handles, but inheritable and (perhaps) renamable
                         (see the VISIT concept below for a rename instance)
Cardinality       =>  single value or <NUMERIC> range of the 
                         <NUMBER OF> role filler(s).
                         (also, we have been encoding optionality vs.
                          necessity as a lower  bound  of  0  or  non-0.
                          It is separable, but must be encoded somehow.)
ValueRestriction  =>  concept which the role filler must be eq to or 
                          descended from.
Role Filler       =>  some concept or set of concepts meeting the applicable 
                          restrictions.

Role specifications are inherited by subconcepts of this concept and their
  individuals, ad nauseum, with (some) deepest value taking precedence in 
  cases of conflict.  The deeper specifications must be more restrictive than
  their shallower (higher, more generic) ones.


***Generic Concepts***

OBLIGATION SuperC ("SomethingOrOther")
  Performer (Cardinality 1:n, ValueRestriction AGENCY)
  Beneficiary (Cardinality 1:n, ValueRestriction AGENCY)
  Event (Cardinality 1, ValueRestriction ACTION)

APPOINTMENT SuperC (OBLIGATION)
  Event (Cardinality 1, ValueRestriction VISIT)

ACTION SuperC ("SomethingOrOther")
  Time (Cardinality 1, ValueRestriction TIME←INTERVAL)
  Actor (Cardinality 1:n, ValueRestriction AGENCY)

VISIT SuperC (ACTION)
  Visitee (Cardinality 1, ValueRestriction LOCABLE←OBJECT)
  Visitor (= Actor)

TIME←INTERVAL SuperC ("SomethingOrOther")                       |
  BeginTime (Cardinality 1, ValueRestriction TIME←MOMENT)       |  lotsa fur.
  EndTime (Cardinality 1, ValueRestriction TIME←MOMENT)         | 

PERSON SuperC (AGENCY)
  Sex (Cardinality 1, ValueRestriction SEX)

SEX SuperC ("SomethingOrOther")
  

***Individual Concepts***

APPOINTMENT#1 Isa (APPOINTMENT)
  Performer JANE←DOE#1
  Beneficiary ISI
  Event EVENT#1

VISIT#1 Isa (VISIT)
  Time WEDNESDAY←MORNING#1
  Actor JANE←DOE#1

WEDNESDAY←MORNING#1 Isa (TIME←INTERVAL)

JANE←DOE#1 Isa (PERSON)
  Sex FEMALE

FEMALE Isa (SEX)

MALE Isa (SEX)

ISI Isa (AGENCY)

-----------------------------------------------------------

Unanswered questions:

The above is a single hierarchy...will this suffice 

Where to place inter-role constraints.

What to do with hypotheticality  (VISIT#1  above  should  be  a
hypothetical visit <IN THE TIME←INTERVAL "FUTURE">)

Is something lost by role names having  significance  only  for
inheritance

How to support  manipulating  times,  events,  objects  without
diverse hairy access methods

THE REPRESENTATION HAS TO PROVIDE FOR SEVERAL SETS  OF  STATUS
MARKS ON THE WHOLE COLLECTION.  ALL OF THESE KINDS ARE FOUND ON
BOTH CONCEPTS AND ROLES.

 .  ONE  SET  REPRESENTS  READER'S KNOWLEDGE OF EXISTENCE:  IT
    CHANGES INFREQUENTLY AND IS BACKWARDS INHERITED.

 .  ONE  SET REPRESENTS READER'S CURRENT ATTENTION.  IT IS NOT
    INHERITED.

 .  ONE  SET  REPRESENTS  WHAT HAS ALREADY BEEN CONVERTED INTO
    TEXT BY THE SYSTEM.  IT IS NOT INHERITED.>

-------

 ∂To SKLEIN@ISIB (18:11 20-May)
At long last, the ANSWERS!!!  (well, more or less...)
First, my standard meta-comment (I know, I know: that last statement, my
first "real" statement, was really meta-meta-.  Anyway,) Rumor has it that
Levesque is heading for Fairchild here in PA, to join Ron Brachman.

Anyway, the above looks amazingly KL-ONEish; and none of it seems even
difficult.  The fact that RLL's document implies a disdain for SuperC type
of operators doesn't mean that users can't simply use the existing
SuperSet slot to provide that function.  Simply indicating that the
various slots you want inherited are inheritable/specializable seems to
address the final issue.  (IE the mechanism for value restriction is all
set up.)  Basically the only major change you'd have to made would be
lexical; and using Typicalx to store the defaulted values, over Anyx.
(That is, if you wanted to use RLL as it stands now.  Of course you would
be amply welcome to modify (your copy of) the units to correspond to
precisely what you wanted.

Things like storing the cardinality of a "slot" is easy to do in RLL -- it
is stored on the unit which representing that slot (as part of the range
specification).  In fact, it can be automatically deduced from the
definition of the slot, in many cases.  One more plug -- RLL currently
"knows" about sets, lists and bags (as well as singletons), and permits
you to declare the value of a slot to be any of these data-structures.
Then, when you add on new values, RLL determines, for example, whether the
order of this new insertion makes any difference, or if duplicated entries
are permissible.  One may also use the FListN data-structure to specify
the value of some slot to be a list of elements of (possibly) different
types -- eg (FListN UnitType NumberType (FSet BooleanType)) means the
legal values for this slot will be lists of three elements -- where the
first is a unit, the second a number, and the third is a list of booleans.
(The knowledge the knowledge about the datatypes is, of course, stored in
UnitType, NumberType and BooleanType.  Let me know if you want more
details about the how this knowledge is stored, or used.  Or more about
the way RangeTypes are used...  Note finally that this same formalism is
being used to describe arbitrary functions -- not just slots...)

There are many ways of referring to a collection of units.  One is to
regard them all as members of class in your hierarchy.  (As any unit can
have many parents it may, therefore, belong to several groups -- eg
Reader's Current Attention, as well as its current position in the
organization of the world.)

For this particular example I would not advice that method.  First, what
that set of entities have in common is really a meta-relation -- ie its
not John in the Reader's current attention, but the John unit ...
(Assuming I understood your example.)  Anyway, there is nothing which
prevents you from defining a RCA units, and a CollectionOfUnits slots,
such that the value of RCA:CollectionOfUnits is just that set of units.

------ As I didn't get a sense of what, exactly, I was supposed to answer,
the above ramblings were just things your example above triggered; and,
undoubtedly didn't answer the questions you had.  Do feel free to ask
again, and to constrain my meandering by including more precise inquiries.

Nothing new to report from PA.  And there?

Russ
!∂TO SKLEIN@USC-ISIB 16:43 22-June
Answers! (And if you believe that, do I have a bridge for you...)
*-*-* [Step 1: Observe funny squiggles on flush against left margin.  Icky, huh?
*-*-*  Unfortunately, these are the particular characters I ended up choosing
*-*-*  for prefacing my remarks.  They are now littered perfusing about the
*-*-*  now messy remnants of your last message.  Enjoy, as best you can...]

 ∂17-Jun-81  1639	Steve Klein <SKLEIN at USC-ISIB> 	Re: At long last, the ANSWERS!!!  (well, more or less...)    

Hi...got tangled in another part of our project, hence the delay.  Anything
new in sight there?  Anyways, response to your response.

First, the cardinality of a slot is not the cardinality of a GENERIC slot, but
merely the particular instance associated with this unit/concept.  What
this seems to imply is doing something like creating a unit for each instance
of a slot and putting the cardinality/range&type checking stuff there.
	*-*-* Yes, this is the sort of thing Doug has been talking about for
	*-*-* a while.  It is currently not implemented, as I never found a
	*-*-* need for this facility.  (This might be because I never understood
	*-*-* it...) 
	*-*-* To make sure I understood your example -- do you mean every thing
	*-*-* which IsA Obligation, has a performer; and, in fact, it has
	*-*-* an nonNIL set of Performers?
	*-*-* Should I assume the value of a unit's Performers, for general units, 
	*-*-* does not have this restriction?

	*-*-* Anyway, in every case I dealt with, the
	*-*-* cardinality of a slot was invariant... those times I needed
	*-*-* to store similar sorts of things with variable formats, I
	*-*-* realized I was really talking about two types of things, and
	*-*-* as such, they were deserving of distinct slot-names.
	*-*-* This was an epistemological distinction, not linguistic ---
	*-*-* you certainly may want to use the same NAME for these entities,
	*-*-* and trust the system to disambiguate the slot name into the
	*-*-* obvious form.
	*-*-* For example, declare Performer to be 
	*-*-*	(OneOf ObligationPerformer CircusPerformer),
	*-*-* where both ObligationPerformer and CircusPerformer are predefined
	*-*-* slots, doing the right things.  [In particular, the value of
	*-*-* MakeSenseFor(ObligationPerformer) must include TypicalObligation,
	*-*-* and MakeSenseFor(CircusPerformer) must include TypicalCircus.]
	*-*-* Then the value of Performer(UnitX) will be either 
	*-*-* ObligationPerformer(UnitX), if UnitX:Isa includes AnyObligation, or
	*-*-* CircusPerformer(UnitX), if UnitX:Isa includes AnyCircus.

	*-*-* Notice these two subslots of Performer could be totally different;
	*-*-* or their only difference may be in their respective formats.
	*-*-* (Permitting the value of ObligationPerformer to be a set,
	*-*-* while the value of CircusPerformer could be a single atom...)

Ex:  Concept Obligation ==> Unit AnyObligation w/ 
                               Performer = (*Do* FSeeUnit ObligationPerformer)

                  and       Unit ObligationPerformer w/
                               Format = NonEmptySet
			       SuperClass = Performer
	*-*-* SuperClass is inappropriate here -- ObligationPerformer, as I
	*-*-* understand your example, is NOT a set, but a further specification
	*-*-* of a slot.  Perhaps you meant "SuperSlot = (Performer)", or
	*-*-* maybe "UnitRangeType = AnyPerformer" [<- ie the range of this
	*-*-* slot is (FNonEmptySet (UnitType (*P AnyPerformer)))]
			         etc.

Questions are:   does something like this work?
	*-*-* Yep, the subslot mechanism, and associated OneOf slot combiner,
	*-*-* are now in RLL. 
		 is there a better way?
	*-*-* Yes, there is a slightly more natural mechanism (one with less
	*-*-* "bulky" and artificial units) 
	*-*-* for achieving this same results --
	*-*-* One simply indicates the ToCompute of Performer is FindDefault,
	*-*-* and stores a value of the form (*Do* FExecute (LAMBDA (un) ...)
	*-*-* on each TypicalX:Performer which might be queried.
	*-*-* I did not mention this above because there are still many details
	*-*-* involved that have not been hammered out.
		 the level of indirection is somewhat disturbing...
	*-*-* Why so unsettling?   These "subslots" do refer to different things,
	*-*-* this formalisms forces you, the creator, to acknowledge this.
	*-*-* Of course the casual user need never know about this -- and, in
	*-*-* fact, he never has to use these subslots,
	*-*-* thanks to that disambiguating facet of RLL's "mini-front end".

Next...could you discourse on inter-slot constraints?  Have you built
mechanisms for either enforcing consistency between slot values or signalling
when inconsistencies exist and how do you represent such stuff...note again
that this applies at the instance level (hence doesn't seem to directly
match your type-checking mechanism)
	*-*-* At the "generic slot" level, we have just what you need.
	*-*-* As you can define the ToPutValue function for any slot,
	*-*-* you could incorporate, by hand, any check you think is
	*-*-* necessary.  Of course, RLL's default mechanism already
	*-*-* does a whole lot of these -- basically by replacing "faulty"
	*-*-* values with correct ones. [Sketch: Storing V on U:S will cause
	*-*-* (i) U to be added to V:S-1, if S-1 = inverse of S exists; and
	*-*-* (ii) various W:T's will be "invalidated", where the T slot
	*-*-* was built using S.  I might mention the PutValue call will return
	*-*-* an error condition (here, by returning NIL) if V does not satisfy
	*-*-* S's domaintype predicate. [What really happens is a bit more
	*-*-* complicated, of course.]]
	*-*-*	Anyway, it would not be hard to add in another set of things
	*-*-* to do when a new value is PUT.  As before, I have simply not needed
	*-*-* this particular bell/whistle, to explain why this functionality
	*-*-* is not present.
	*-*-* If you give me a particular case, I can try to either show
	*-*-* how RLL already does this; or concoct up a new, hopefully general,
	*-*-* mechanism, for achieving that effect.

	*-*-* I still haven't said anything about handling this at the instance
	*-*-* level.  The subslot solution is probably still the "right" way
	*-*-* to go.  Let me know if you think otherwise.

	*-*-* In terms of "represent(ing) such stuff": well, much of what is
	*-*-* now done is rather declaritively encoded -- using things like
	*-*-* CVsUsedBy and Inverse slots of the units which repesent the slots.
	*-*-* (These brief values "expand" into the code which actually does the
	*-*-* corpus of work suggested above.)
	*-*-* Any other such tests/conditions/constraints you may wish should
	*-*-* be similarly encoded.

Also, how are multiple inheritance mechanisms handled?  your note seems a
bit sparse in what is actually happening internally to support this.
	*-*-* "Inheritance is a many splendored thing."  
	*-*-* This question probably
	*-*-* stems from the different senses of the term we are using.
	*-*-* To me, for that report, inheritance mechanisms were used for
	*-*-* initializing a new unit.  (One of my current tasks is to use
	*-*-* some inheritance-like thing in a slightly different sense:
	*-*-* to, for example, incrementally specialize a succession of units,
	*-*-* ala UNITs.)

	*-*-* Anyway, the three current mechanism correspond to:
	*-*-* Isa Inheritance:  used to create a new Fido, by telling the
	*-*-*	"procedure" that this new entity Isa AnyDog -- or even that
	*-*-*	Fido Isa (AnyDog AnyMotleyCreature).
	*-*-* SubClass Inheritace: Getting the AnyPoodle class, from AnyDog --
	*-*-*	or having AnyWhiteElephant:SuperClass = (AnyAlbino AnyElephant).
	*-*-* TypicalExample Inheritance: Initializing TypicalDog from AnyDog.

	*-*-* These three are just independent things -- and, in some sense,
	*-*-* they in no way interfer with each other.

	*-*-* Or did your question mean to ask:
	*-*-* To what value will Fido:Color be initialized,
	*-*-* given that Fido is being created as an Albino Dog?
	*-*-* And explain that procedure.

	*-*-* (I was afraid of that affirmation.) Ok - honesty:  This don't
	*-*-* work right.  Currently the implementation is far too simple: it 
	*-*-* will declare Fido to be either the default color for (Typical)Dog,
	*-*-* or the default color for (Typical)Albino, whichever it finds
	*-*-* first.  If anyone pressures me into it, this algorithm could be
	*-*-* updated to do some more-nearly-correct type of thing - like check
	*-*-* first to see if some characteristic is definitional, and use that
	*-*-* before considering any merely assertional fact.  Or using some
	*-*-* general ordering of property "epistatus" types
	*-*-* - from Defination, Derived, Asserted, ... thru 
	*-*-* Defaulted, and OnlyIfReallyDesperateForAValue-ed.
	*-*-* I delayed implementing this until I figured the "right" way to
	*-*-* store such epistemological marks on the propoerty; something still
	*-*-* on my agenda.  (Another less declarative, but more versatile, tack
	*-*-* involves storing procedural rules with the ToInitializeValue of
	*-*-* slot (eg Color), as well as with each TypicalX:Color.  Then some
	*-*-* general rule interpreter would walk thru these to determine the
	*-*-* initial value.  But I didn't do that, either.

--this all looks KL-ONEish as a result of it being derived from it
(abstracted?).  Onwards...(scritch, squeal..)

Steve.
-------

*-*-* Anyway, these "answers" were written (probably too) quickly; and may
not have adequately addressed your inquiries.  Feel free to write for
further elaboration, if you wish.

*-*-* I forwarded your "let's get together" suggestion to Doug, who may or may
not respond in the near future.  He's been busily EURISKOing the last few weeks,
over at Xerox.  He's shifted his attention away from RLLish issues sufficiently
long ago that he may not have terribly much to say.  But we'll see.
Mike Genesereth would be a good person to join in the discussion, but unfortunately
this meeting will not be in upper Altantic Ocean; and Mike will be, by then.

*-*-* Anyway, I'm game to your strange request to enter a higher bandwidth
communcation -- even though I'm convinced that whole idea of Talking will NEVER
catch on...
I'll let you know when, when I know.

Caio,
	Russ

	(klein, con't)
∂22-Jun-81  1416	Steve Klein <SKLEIN at USC-ISIB> 	RLL demo...perhaps   

Greets.  We will be up your way for the Assoc. of Comp. Linguistics conf.
next weekend until wednesday.  Whats the possibility we could get together
with you and Doug for discussions, etc.?  If so, could you propose some times?
Meals mon-wed are open as well as sun,tues evenings.  Among things it would be
nice to discuss would be specific questions of availability & system
"lifetime" plus perhaps some demo or other.  Our complement would be somewhere
between Bill Mann and myself and the whole group of 4/5.  Let me know what you
think.
Steve.
-------

 ∂22-Jun-81  2323	CSD.LENAT at SU-SCORE 	Re: When would be good for you?      

Practically anytime is OK with me.  I think next Tuesday
may be best, as I am having a demo for a Schlum. folk then.
(Tha is the 30th I believe) -- somewhere in the lunchtime-2pm range.

Doug
-------

 ∂23-Jun-81  1304	Steve Klein <SKLEIN at USC-ISIB> 	Re: How about Tuesday, noon?   
To: RDG at SU-AI
cc: Mann at USC-ISIB

Sounds fine.  Assuming we include lunch, I'll let you dig up your favorite
PA somewhat-fastfood joint (ACL session time constraints...). Ok?
Steve.
-------

 ∂23 Jun 1981 2336-PDT	CSD.LENAT	schedule for Tues
To: csd.greiner

Looks like lunch at the faculty club at noon,
and demo at PARC at 1:30.

How many for lunch?

Doug
-------
 ∂24 Jun 1981 1723-PDT	CSD.LENAT	misc
To: csd.greiner
cc: csd.gotelli

Ok, good, Russ.  I have worked at the RLL paper a bit
and sent a draft off to Don W.; we will do more around editing time.

Lynn: please make reservations for me, for 4 peoople,
next Tuesday at noon at the Faculty club.

Doug
-------
 ∂24 Jun 1981 1248-PDT	CSD.GREINER	Re: Number for lunch
To: CSD.LENAT
cc: CSD.GREINER
In-Reply-To: Your message of 23-Jun-81 2336-PDT

For sure Steve Klein and Bill Mann (in addition to you and me). 
There are two or three other ISIers --
but that many more people would probably only slow down our discussion...
So unless you object, let's make reservations for 4.  I'll send Steve
a msg tomorrow (ie let me know by then if this is not what you want.)
	By the way, Steve and I have sending messages back and forth
since AAAI, discussing RLL.  Basically both he and his (still KL-ONEing)
group at ISI are sold on by the rll ideal, and all are toying with the
prospect of using RLL-1 itself.
	(Final note: Steve and I know each other from CalTech, years ago.)
Russ

PS Any word on the RLL document for BES?  Is it that bad?  Or are you just
waiting for the final editing session with (Rick and Don) to splice
it in?
-------

!∂24-Jun-81  1508	Steve Klein <SKLEIN at USC-ISIB> 	IJCAI 
Date: 24 Jun 1981 1457-PDT
From: Steve Klein <SKLEIN at USC-ISIB>
Subject: IJCAI
To: Pressburger at SCI-ICS, RDG at SU-AI

Anyone planning to go to IJCAI / and what means of transportation, timeframe?
Steve.
-------

 ∂To SKLEIN@ISIB, PRESSBURGER@ISIC (11:40 25-June)
Finally some easy questions to answer!
I'm flying - leaving from SF on 24/VIII (on Western #465),
and then returning on the 30th of August, (on Western #462,) maybe.
(Some friends and I might go camping the week following IJCAI.)

Et tu?

By the way, SCI has been down for about a month -- I think Tom's best
address is @ISIC.  (Is that true, Tom?)

Finally, Doug and I are all set to meet with Bill Mann and you at noon
this Tuesday -- the plan is to eat at the faculty club, on campus.
Doug has to give a demo at PARC at 1:30; but I'll be around.

Russ

 ∂TO LENAT@PARC, CSD.LENAT@SCORE  17:03 29-Jun
Meeting tomorrow
Doug -
	I'll see Steve Klein (and I assume Bill Mann as well) at the
ACL meeting tomorrow morning.
We three can meet you at the Faculty Club shortly after noon.

See you then.
	Russ

	(klein, con't - then p.17)
∂14 Jul 1981 1516-PDT	CSD.GREINER	News from ISI
To: csd.lenat
cc: CSD.GREINER

Steve just called me -- he has accepted the challenge, and is set to
immerse himself in the glory and wonderment of RLL.  I proposed he
meander here relatively soon -- hopefully while I'm indoctrinating Greep.
So perhaps next week, or the week just thereafter.  Is that ok by you?

I'll dig up the forms I have for product release.  I guess you and I
should sign the RLL release, and you and Dave the CORLL one -- or are
both necessary?

Next issue: which machine?  There are a slew of hassles just switching from
SCORE and Rand-Ai; and I'd rather not be responsible for 3 machines.  Should
I encourage Steve to contact Rand, and see if they can give him an account
(which I assume will be difficult, given the hope of the Rand people to keep
Rand-Ai uncluttered), or should Steve get an account on SCORE -- at least
for his training time?  Or should RLL sprout a 3rd home?

-----
No news on either the thesis or BES front:  My principle text editing
machine is SAIL, which has been flakey of late... So I've been fixing up
some of the RLL-related utilities, and now will get back to finishing
up the Rand task.

------
Any word from Tom Deitterich, or Jim or (who was the third person you were going
to contact)?  Also, have you talked anymore with the woman from South Africa?

	Russ

∂15 Jul 1981 1153-PDT	CSD.LENAT	rll news
To: CSD.GREINER

Sounds good; anytime is OK to have Steve up.
I think it best if he works over the net on an ISI machine;
it can't really be that difficult to switch -- just the FTPing
hassles, and you can let HIM be responsible for that -- you just
keep "the latest" version somewhere (Rand or Score) and make
sure he can ftp from that place, and gets notices of new "releases".
Probably he'll just take one semisolid vversion anyway.

Saw Jim and Tom and Avron, and don't know yet who if anyone
will be joining up.  Should know soon. Probably NOT Tom,
as he seems fixed upon Dave Smithing it -- doing some
small thing very carefully, theoretically, and properly,
rather than some big thing anyway possible.

Doug

∂TO SKLEIN 11AM 27-Jul
Well....
Steve:
	So, when are you hobbling up north?  I'm in no particular rush,
but others are:
Some people have been asking about RLL-ish sorts of things, requesting
demos and things like that.  I figured I could do that whilst showing
you the system, as that was about to happen any day now.  And now they
are starting to show the first signs of impending impatience.
(Can "impatience" be "impending"; or did I just make that up?  Sounds good
anyway...)

	By the way, would you like to do a bit of propoganda-spreading and
possibly recruiting during that stay?  We of HPP have a weekly meeting
at which you could probably speak; if you've the yen, time, interest,
guts, ...  The standard time is Friday, at noon.  Let me know...

	How're things there?   In the police hdqrs?  At ISI?
I did get your little blurb
	Caio,
Russ

∂TO CSD.SMITH@SCORE (CC SKLEIN@ISIB) 14:37 10-Aug
New CORLLer
Dave -
	Steve Klein (SKLEIN@ISIB) is now using RLL, and hence CORLL as well.
Could you add him to the list of people whom you inform about each CORLL
fix/update/modification.
	Thanks,
Russ

∂10-Aug-81  1524	David E. Smith <CSD.SMITH at SU-SCORE> 	Re: New CORLLer     

I don't have any such list.  I also won't be using CORLL anymore and hence
don't intend to do any maintenance on it.
-------

	RLL Mini-Tutuorial - ca 3-7 August 1981 - Klein, Jonathan King, Greep

∂27-Jul-81  1736	Steve Klein <SKLEIN at USC-ISIB> 	Re: Well....    
To: RDG at SU-AI
In-Reply-To: Your message of 27-Jul-81 1308-PDT

Sorry.  Next week would be ideal.  We need a few more days to ready "test
material".  I haven't figured out whether I want to end up there Sunday or
Monday yet, though.  I decline all propaganda and such things opportunities
as they make me nervous.  Page 27 mention is one of the fine opportunities
ISI offers.  All is as it usually somewhat is.  The mass defections going
on at the moment are making people mildly odd (I think I mentioned that
eight to ten people are deserting).  Having a hard time deciding where to
look for a house (and running out of time).  Sandy's having a hard time
deciding what she wants to do in general (would you work for the LAPD?)
Let me know if you made any plans such that I should choose a different
arrival time.
-------

∂TO CSD.LENAT 13:23 28-Jul
RLL Mini-Tutorial
Doug -
	Looks like Steve will be coming next week, circa Monday.
I plan to just give him an informal run thru (spending only, say,
part of Monday), and let him then attack his particular task.

	I'll contact Jonathan King (now of HP) and have him sit in, if he wants.
I've not seen Greep recently, but he may want to join this ensemble also.

	Do you want to give any blurbs, sales pitches, or what-not?
Shall I expose them to MRG, and his MRS?  Time to make some color glossies?
Any comments, etc.?

Russ

∂28 Jul 1981 1450-PDT	CSD.LENAT	RLL DEMO/TUTORIAL
To: CSD.GREINER

No special presentation.  Forget MRS -- do not strain their
minds needlessly.
Doug

∂28-Jul-81  1542	Steve Klein <SKLEIN at USC-ISIB> 	no = yes   
To: RDG at SU-AI

is it to be presumptioned dat the plan of yesturdday iss acceptable?
you have a spare floor piece for a while by any chance?

∂29-Jul-81  1126	greep at RAND-UNIX 	Re: RLL Tutorial-ette    
In-reply-to: Your message of 28 Jul 1981 1334-PDT.

Yes I'd like to observe.

Best mailbox (and one most often checked) is greep@SU-DSN.  However,
the most reliable one (in terms of the machine being up) is greep@RAND-AI.

∂TO SKLEIN 15:26 29-Jul
No, no, no, ja, oui, no, si, cain, nein, lo, ...
Sure - I'll be busy both Sunday and Monday nights (dancing and Basketballing,
respectively).  But come whenever.
(Unless you want a chaffeur service. Feel free to use my car if you
need a vehicle (it's manual transmission, if that makes a different).
Only I don't have all that much time...)

As to floor space: my landlord has some funny policies wrt guests
-- he doesn't especially like people in general, and visitors in particular.
So I'll not be able to supply even floor space, unfortunately.  Perhaps
Tom could?  Wasn't ISI going to store you in some fancy-smancy hotel, or
at least give you some allowance to reward you for braving the wiles of
perfunctory(sp) Palo Alto?  If not, then it's not too surprising to hear
of a whole herd's defection from there...

Anyway, I still don't know quite what I'm going to do then.  Probably
spend part of the first day completing a tour thru RLL's current set up;
and then let you loose.
If you've some particular thing you'd like to see demonstrated, let me
soon.  Otherwise you'll get whatever mishmash seems appropriate to me;
and I've often been wrong in such decisions.

Some people: Jonathan King of HP and Steve Tepper (alias Greep [his choice])
will probably be in the audience as well, at least during the introductory
session.

By the way, did Ben contact you?  He's on one of his periodic n-month vacations,
and is starting from LA.  I gave him your name, number, address, ...
For symmetry,
	Ben C. Moszkowski
	  (213) 477-2105 -- [Mother "L"ena] ?, Los Angeles, CA 900??
	  (213) ?	 -- [Father] 2567 S. Barryton Ave, Los Angeles, CA  90064

---
That's all for now.  See you soon.
	Russ

∂TO SKLEIN @ ISIB 12:43 31-Jul
tick, tick, tick, tick...
Steve -
	So when should I expect you?  And where?  If you like, I can ask
for floor space for you.  CS people with spare rooms include
	Milt Grinberg - CSD.GRINBERG@SCORE
	Mike Genesereth - CSD.GENESERETH@SCORE

See you soon,
	Russ

∂31-Jul-81  1636	Steve Klein <SKLEIN at USC-ISIB> 	Re: tick, tick, tick, tick...       
To: RDG at SU-AI
In-Reply-To: Your message of 31-Jul-81 1243-PDT

Russ--
Da Details:  I'll be arriving there this Sunday a bit around 10:30pm.  My
return is for the following Sunday at Noon.  I have semi-room arrangements
(currently a hole for Tuesday nite--there seems to be a Chess tournament there)
and a vehicle, so no problems there...I'll get hold of you Sunday evening to
see what's next, unless you have alternative suggestions.
Steve.
-------

∂ 1 Aug 1981 2031-PDT	GREINER		RLL Demo
To: greep at RAND-UNIX, greep at SU-SCORE, jjk at SU-AI, stt at SU-AI
cc: greiNER

... will be held at 11 AM, this Monday morning; if all goes as planned.
(Steve's due to arrive the previous night.)
Please meet in my office - 251 Margaret Jacks.
	Russ
-------

	Follow up conversations with Steve Klein (from 12-Aug-81 on)
∂TO SKLEIN 12:06 12-Aug
All sorts of miscellany
Yes, I did see (and subsequently destroy) your note; and did 
probe about a bit, but couldn't find your pad.  Sorry.  Are you sure it
wasn't in you hotel room, or under something in the car you rented?
Shall I give 'em a call?

I see the traffic-controller's absense has been felt - given your exciting
voyage back.  I'll heed your warning, as best I can.

Thanks for fixing up the EMACS.INIT file.  For some reasons the desired
HEATH.* files have never been stored on the obvious <EMACS> directory,
on SCORE.  (The file I sent lives on [Rand-Ai].)  Anyway, substituting
<CSD.HPP-UTILITIES> for <EMACS> renders the file usable.

I've been fixing up the AllIsas/MyAllIsas stuff - and then I'll return
to the FSeeUnit stuff.  Do you want to be vice-president in charge of
writing the "record-changes-to-nucleus" stuff for RLL?
You may assume that every put/add/delete/substitute calls the function
DefaultAfterPutValue, or assorted arguments.
(Even those hand-crafted after-put-values contain this call.)
Hence an appropriate edit of this function would be sufficient.

Suggested algorithm:
	Check first if the unit affected is in a nuclear KB.
[The UA-KB? function returns the full name of the KB to which a unit
belongs.  We'll need a global variable to hold the relevant KBs --
possibly this variable should be set in RLL-StartUp.]
	Next make sure the change is at "top level" -- there is no
reason to spend time and energy to store effects which follow from
some known initial action.  This will use the "why" variable;
which will soon undergo radical changes. (See below.)
	Now for the hard part: We only want to record "relevant"
alterations.  For example, I may add a new subclass of Anything, say AnyFrog,
which is in the DUMB kb.  There is no reason you need
to know about that.  So here we'll need code which examines the "modif"ication
variable, to determine whether all the additions were to nuclear
unit, or something like that.  Of course it gets further complicated if
ever I add both AnyFrog and AnyRLLUnit to Anything at the same time
(where AnyRLLUnit does indeed belong in the nucleus).  Now you'll have
to subset the values, ...  (Boy I'm glad you'll be doing this, and not me...)
	If all of these pass, write on some external file what
this change was.  The easiest mechanism may be to walk back up the
stack to the call to *Value, where * is [Put, Add, Delete, Subst],
and then write out that function, and its arguments as quoted values.
[Of course if you do the full-blown modification described in the third
paragraph, you'll have to twiddle those values accordingly.]
(The function ?UU-RECORD?? (sorry, I don't have my CORLL manual here)
might give a hint for how to do this.)
----
Other functions which have to be massaged:
CreateUnit, KillUnit, RenameUnit -- this is straight forward:
simply recording what unit has been changed, and how.
From here on the various PutValue's will
do the required work.

Final consideration:  This recording function should probably be written
as a seperatable function, or at least a macro.  I may, for example, 
want to make some quick change to some nuclear unit, and not want to
go thru the entire rigamarole (sp) of the expensive PutValue call.
To avoid trouble, though, I should jot down this change in that external
file... I don't know, maybe we should just advise UA-PUTPROP accordingly?
(Or perhaps UP-PUT, going a unit at a time.)

Do you thing this will work?  Realize there should be some general mechanism
for doing this sort of task, as even when RLL's nucleus ceases its
leaps-and-bounds growth, there will still be times when several people
will want to use a common KB, even though each person is working on his
own distinct task.

-----
Anyway, I should get back to work.  I'll be spending time with brother Miles
next Monday and Tuesday, and then be at the Cognitive Science meeting.
I'll try to return to hacking that week-end (22-23 Aug), and then I'll
be gone until 4-Sept.  & I've still Rand-related stuff to do, not to
mention my far-too-long-neglected thesis.

On other fronts, still no word from Dana.  I suppose there's a very
clear message in this silence.  Damn women, anyway!

Let me know what you're up to.  Good luck on your house-shopping.

Russ

∂12-Aug-81  1454	SKLEIN at USC-ISIB 	Re: All sorts of miscellany   

Russ--

I found the noteboooks last night...they were buried on my desk (this episode
triggered an attempt at cleanup).  Thanks for looking and sorry for the wild-
goose-chase aspects.  The task you set out looks feasible.  I'm trying to
finish up something short at the moment, so I'll get back to you in a day +-
1/2 to let you know whether I agree with / understand all of your outline.

Under the circumstances, your analysis of the situation with Dana is probably
right...you might want to try getting some clear statement from her, although
that could be somewhat painful...  I guess she hasn't come to grips with the 
global effects of her actions.

Nothing useful happening at this end (at least at the moment...).

Steve

	(klein, con't)
∂ 6 Sep 1981 1539-PDT	<CSD.GREINER at SU-SCORE>	Recent actions
To: sklein at USC-ISIB
cc: greiner at RAND-AI

Well, I just returned from my IJCAI, and subsequent venture into beautiful,
charming, backland-campgrounds in British Columbia.  And now back to work:
(This is the prior message should have said.  Please delete that erroneous
version...)

Just what sorts of things have I been doing of-late:
I've been working out (a first pass at) a list of those additional values
which get passed to GetValue, PutValue and friends.
GetField and PutField will soon have a similiar list:

The third arg to GetValue - "other" in most functions - is an unordered list
(actually an FSet) whose elements may be:

  (FAST-CACHE s1 s2 ... sN)  -- this causes the atom Fast-Cache to be passed
	to CacheValue, on its "why" list, for each slot, si.
  (-CACHE s1 s2 ... sN)      --  tells the get-values NOT to cache the computed
	value of any slot si.
  (-COMPUTE s1 s2 ... sN)    -- the get-values will not bother computing the
	value of any slt si; if the value isn't stored, just forget it.
  (IGNORE-CACHE s1 s2 ... sN) -- the get-values will NOT use the stored value
	of any slot si -- but rather will compute those values as needed.
  (SAFESLOT s1 s2 ... sN) -- each si really is a slot; so don't bother to 
	confirm this.
  (SAFEUNIT u1 u2 ... uN) -- each ui is really a unit.
---
[Note I am trying to adopt the convention that binary conditions be indicated
 by using some name, prefixed by + or -, depending on sense.  In general only
 one form (eg either +←←← or -←←←) will be necessary, as the other sense is
 the overall default.  For example, +CACHE is superfluous.]
---
In addition, any of these elements can be a qingle atom -- one od∧AiQ¬h~∃w→β'([
βπ⊃
[πβπ!
@[π=≠!+)∀A∪∂≥=%
[π¬π⊃
AMβ
'1∨(A'¬
+≥%)|AY%ch\~)∪\Ai!JAMSIgh@h↓GCgKLXAiQ%fA[K¬]fAi!JAS[AYSKH↓CGiS=\AoS1XAQCAaK\AQ↑AKm∃erAg1←h\~)β\ACQ←[SF↓'β
⎇??>A¬aaYS∃fA←]1rAi↑↓iQJA
keeK9hAgY=hA←d↓k]Sh8~∀Q)!SfA[%OQhA	JAoe=]NvA	khASPAISH↓gCmJ↓π∨≥&↓GKYYLAM←d↓iQJAMiC]I¬eHAG¬gKf\$~∀~∃$AeKg∃emJAQQJAe%OQhAQ↑AMkIiQKd↓KYCE=eCiJ↓iQSf↓G←]m∃]iS←8Ai↑AMkShA5rAoQ%[f~∃¬hAC]dAYCi∃dAICQJ\@A→←dAKaC[aY∀XA←]∀A[Cr↓KmK]QkCYYdAoC]PAi↑A	JA[←IJAga∃GSMS~∃S\↓IKiKI[S]S9NAoQ%GPAg1←hOf↓mCYk∃fAi↑0AKNX↓SO]←IJ@ZZ↓CfAS8~∀@@Q∂KiYCYkJO
eK⊂@O
e%K]IfNPQ∪≥≥∨%
5πβπ⊃∀AβYY∃qC[a1Kf@Q¬]s
e=NAβY1∪gCf$RRRX4∃oQS
PA[K¬]fAi!JAGC
QKHAYCYkKLACfATuβYY∃qC[a1KfAo%YXAE∀ASO]=eKHA→←dAC1X~∃k9SifATXAEkPAiQCPA,uβ1Y∪gCLAoSY0AEJA¬GGKaQKHAaπ!(↓/⊃≤↓,{β]e
e←N8~∃∩A
kkeK9iYrA!CmJA9↑Akg∀AM←d↓gkGP↓B@EM∃Cike∀D@ZA⊃↑As←T}~∃β9←iQKHAISe∃GiS←8A[Cr↓EJAi<AQCm∀AM←e5fAoQ%GPACIJAKm¬YkCi∃HAIkIS]NAQQJAG¬YXX~)oSYX↓Caae=aeSCQJAES9IS]OL@ZZ~(@@Q∂∃i-CYUJ@O
IKH@O→eSK]⊃f@NP!∪∂≥∨I
[πβ
⊃
@{→\AM\fnRR$X~∃o!KeJAQQSfA→\Ffn↓oSYX↓EJACAaYSK⊂Ai↑AQQJAk9ShAC9HAgY=hAEK%]NAG=]gSI∃eKHA¬h~∃K¬GP@QIKGkeMSmJR↓GCYX↓i↑A∂∃i-CYUJvAC9HASiLAmCYUKfAo=kYHA	JAkg∃HACf↓iQJAMKh~∃=LAgY=ifAo!←gJA
CGQK⊂AmCYUKfAg!←kYH↓EJAS≥]←eK⊂\@Aα↓gYSO!hAmCISCiS=\A←L↓iQSf4∃o←k1HAEJ↓g←[KQQS]N↓YSWJP\\\PQ∪∂9∨%
[
βπ⊃
{!eK⊂zAae∃HFpd$RRXA]QKeJ↓aeKHpd~∃]←kYH↓EJAB↓aeKI%GCiJ↓oQ←g∀A]←]9∪_Ae∃ga←]MJA[K¬]hAi!JACe≥k[K]PAgQ←UYHAE∀~∀ES≥]←eJ5GCGQ∃HD\@↓∨]GJ↓COCS8XAiQ%fAgY∃IOJA!C[[KHA[Cr↓]←hA∃mKdA	JAeK¬YYrA9KKIK⊂X~∃EUhASh↓QCfA	KK\A
←]gS⊃KeKH8~∀~∃→S]CX↓G←[[∃]ift4∀QRR↓'β
↓C]HA
∨≥')¬≥)'→=(@Qβ9λA≠βe¬
A
¬'([∂∃(RAQ¬mJAM=YY←o∃HAiQ∀AI←I<~∀∪S9i↑AKaiS]GQS←\@4ZAiQ∃eJAo∃eJA]∃mKdAIKCYYdAkgK⊂XAC]⊂A∩A]=n~∀∪IKCYSiJAiQ∃rAoKIJA]KYKdAKYK\A]∃KIKH8~∀QS$RA)Q∀@E-I2DA←_A-%e'β
M→∨(A¬]HA-∃%3'β→+≥∪PAoCf↓Ie←aAKHACLAgka∃eMYk=kf\~(QSSR$A∩OZ↓gkeJ↓∩AoS1XA]K∃HA[←IJA←L↓iQKg∀AmCYUKfvA	khAC4AoCSQS]NA→←dAB↓M←eG%]N~∀%KqC[AYJAE∃M←eJ↓S[aY∃[K]i%]NAC9HAI←
k[K]QS]NAQQ←gJ↓←aiS=]f\~(@@@@@A7aC[aY∃ft@QU'
[-¬→+
@!jbAfDAmCXDR@\\8@Qk≤↓g≤Am8RRA[∃C]S]≤@Eae∃iK]Hλ~∀∪i!JAmC1kJA←_AkRuMRASf↓eKCY1rAmC1R@ZZ↓I←\OPAE←i!KdAi<AG←[AkiJA%h\~∀%)QKe∀OfAC1g↑Ag=[JAQ¬ggYKLAoQK8AIKC1S]NA]SiPAQQ←gJU	≡T↓gaKG%CX@~(∪mCYUKf@Z4AgQ←UYHAi!KrAE∀AieK¬iKHA¬fAgS5aYJ@	gs]i¬GiSFλAmCYUKfXA=d~∀∩	KmCYUCiKHλ@ZZA%JAQ←\AI↑A$Agi←IJAiQ∀@EmC1kJD@ U	≡T↓
'KKU]ShAM←M*R4∀∪Cf↓*u&}AβfA$AgCS⊂XA[←IJA←\↓iQSf↓CfAi!SfAG=[KfA%[a←eQC]h@4ZAk]1Kgf~(∪s←j≥mJAg=[JAS9gSOQQfA←\↓iQSf↓oQ←Y∀AGC\↓←LAo=eSf]t~∀ZZ4ZZZZ4∀~∃∨9i↑Ai!JAakQiS]N↓Mk]GQS←]f8@A∩AMQ←kY⊂AoCe8As←j↓iQCh↓∩A]←\AiQS9VAiQ¬hAiQ∃eJ~∃%fACh↓YKCgPA←]J↓MCiC0Aae←	YKZA]SiPAQQSfA=mKeC1XAga∃GSMS
CiS←8ACaaI←CGP0~∃oQ%GPA∩≥YXAG=]mKr↓CEiKHAaeKMK]iS9NAiQ%fAae∃mS←kMYr[i!←kOQP[G←eIKGhAMaKF\4∀~∃β9soCr0ACOC%\AiQ∀AMS]¬XACe≥k[K]PASfA∧AgKh↓←LAu∃e↑A←HA[←e∀AKYK5K]if0~∃KC
PA←L↓iQJA→←eZ~(∪7)Q∃gJACAaYrAQ↑AC]dA←LAAki-C1kJXA¬II-C1kJXA⊃KYKi∃-CYk∀XA'k	gi-C1kK:~(@@[-∃%∪
2ZZAi!KeJA%fA]↑↓]KKH↓i↑Am∃eSMr↓iQCh↓iQSf↓mCYk∀ASfA¬aae←AeSCi∀XA←d4∀∪iQ¬hAiQ%fAgY=hAEK1←]Of↓←\Ai!SfAk9Sh\@Q3Kf0AiQSLA[Cr↓S]IK∃HAEJ~∀∪G=]Mkg%]NAi]↑AISMiS]GPAMk]
iS←]L\@AYK]ik¬YYrA$Ao←eIrACE=khAi!SfX~(∪SLA$AQCm∀Ai↑\$~∀@@5∪≥-I'&@4ZAI↑↓≥∨(A9←nAC⊃HA←\↓S]mKIgJAY%]Wf@!iQSf↓SfAkMKMkX↓oQK\↓iQSf4∀∪aCIiSGk1CdA!Ui-CYUJAoCLASig∃YLAC⊃IS]N↓ECGWA←S]i∃ef\@↓∪LA]=hAM←HAiQSL~∀∪M¬GSYSQrAiQ¬hAae=GKgf↓o←kY⊂ACYo¬sfAY∃CHAi<AC\A%]MS]%iJAY=←`\\8R~∀@[	!∃≥	≥
∪&@4ZAI↑↓≥∨(A⊃↑AiQ∀A←iQ∃dA[SMGKYY¬]K←kLA↔∧AUaICi∃fAoQ%GPAe∃gkYh4∀∪Me=ZAiQ%fA[←⊃SMSG¬iS←\8~∀~∀%7)QSLA←]YdACaa1SKfAQ↑A!kQ-CYk∃:~∀@Wβ→/¬3&[+A	β)
ZZAO<AiQeTAiQJ↓[←iS=\A←L↓CIIS9NAS]YKegJ↓YS]WLXAC]⊂A←iQ∃d~∀∪¬MiKd5akh[YCYkJ↓Mk]GQS←]f↓CMiKHAaKe→←e[S9NAC\↓kaICQJ@ZZ↓KmK\↓SLAi!J@~∀%mCYk∀AgKK5fA≥∨PAi↑A!CmJA
QC]O∃H\@Q%JAae∃iK]H↓iQJA=YHAm¬YkJA]CfAe∃CYYr4∀∪%K
←[akQK≠J\$@A)Q%fASf↓]KKI∃HAi↑↓QC]I1JAiQ∀AGCg∀A←LAU]Sh@4∀∪S]%iSCY%uCiS=\XAo!K\Am¬YkKf↓CeJA→Segh↓gS[a1rA+α5!+)-¬→+H↓←]i↑↓iQJ@4∀∪k]%hXAC9HAYCQKdAQ¬mJAi<AEJA¬GikC1YrA!Ui-CYUJ[H\4∀~∀∪m)QKg∀A←]YdACaa1rAi↑↓βII-¬YkJX↓	KYKQK-CYUJX@L↓'kEgQ-CYk∃:~∀@Wπ∨≠UTE-INITIAL -- What should you do when you've been told to add on a
	new value, V, onto U:S when there is no value of U:S?
	There seem two possibilities:
	(1) do everything you can to compute the value of U:S,
	   and then add on V.
	(2) simply go on, (leaving U:S uncomputed) with the assurance that
	   any one from now on who wants
	   to find the value of U:S will specifically ask for it, using 
	   GetValue; which will now have to compute it.
	   The asssumption is that S:ToCompute will now catch this new V.
	Anyway, it turns out that both of these cases come up -- hence this
	extra parameter.
	[Note I believe the current programs will always compute the value if 
	the slot is primitive -- as this means the value is NoEntry or 
	NoEntries, depending on the format of the slot.  This is probably 
	the wrong approach...]
  N-Values -- In general one wants to add on just one value, V, to a value of
	U:S.  However there are times one may want to add a slew of {Vi} at
	once.  The purpose of this value is to distinguish these cases.
	Note this is well defined for both AddValue and DeleteValue; but
	may lead to confusion for SubstValue, if we want to replace N values
	with M values, when N <> M.  Of course we may simply bar this operation
	in general.

-------
Sounds good?  Well, there is a problem:
Why should PutValue need to know anything about adding inverses?  I'll
agree that DefaultPutValue should, but things at this level should be totally
invisible to the general user-level functions.  It should be sufficient
to tell PutValue that we are now AddingInverses, and nothing more.
The functions which PutValue calls, such as DefaultPutValue, should
now infer that this means not to add inverse pointers to these, ...
So this seems to imply I should go back to the earlier convention, which
stored values like AddInverse in that extra argument.

I now need a table which relates those parameters with what they really
mean --
		Verify?		Inverse?	Dependencies?
New-Unit	  +  		  +
KB-Consistency					  +
AddInverse					  +
DeleteInverse					  +
RemovingForeigners				  +
UnitRenamed					  +
UnitDeleted					  +
<default>	  +		  +		  +


This conversion would now take place in DefaultPutValue -- and each function
it calls (Default←←←PutValue, where ←←← in {Before Actual After}) would 
have what it needs to perform the apt action.
(Similarly for DefaultAddValue, ...Delete... and ...Subst... .)

-------
Implementation:
As I keep changing my plans in mid-implementation, none of these changes are
yet totally done.  Hopefully today and tomorrow will be sufficient to either 
get everything mentioned here to actually work, or to find why are doomed to 
failure.  Note I have made the appropriate (or inappropriate?) changes to
all of the units -- using EMACS (now my recent EMACS question probably makes
more sense...)

-------
I also changed a few other things: NewPossibleSlots is now MyNewPossibleSlots,
which it should have been all along.  Also the value of a unit's MyCreator
is now a unit, rather than a string.
All of these are recorded in the various files on [Rand-Ai]<GREINER.RLL>,
of course.  Let me check them out, before you bring them over to [ISIB].

-------
Another question: Did you ever discover why no one can log into MANCOM.RLL?
To see what sort of stuff you've been working on recently, I've tried to
examine just what new stuff has been deposited in MANCOM.RLL;
and found this could only be accomplished if I logged
in as you -- which I decided was unethical, after doing once.
Let me know (1) if you want me to look over your shoulders (read: spy) on
you work, and, if so, (2) how I can get access to USC-ISIB.

-------
Eventually I get around to finishing up the FSeeUnit stuff, and the stuff for
Rand, and, possibly, thesis stuff, and ...

Take care,
Russ
-------
                ---------------
-------

∂ 7 Sep 1981 2237-PDT	GREINER		Current updates
To: sklein at USC-ISIB
cc: greinER

STEVE -
	I SPENT A WHILE TODAY HONING THE SPECIFICATIONS FOR THOSE
EXTRA ARGUMENTS.  THE DOCUMENTATION, WHICH MORE OR LESS CORRESPONDS TO
THE CURRENT CODE, RESIDES IN [RAND-AI]<GREINER.RLL>SPECS -- YOU MIGHT
AS WELL SNARF THIS MORE RECENT PIECE TO EXAMINATION, ESPECIALLY IF YOU'VE 
NOT READ THAT LAST OPUS MAGNUS.

	AS SUGGESTED, I MEANDERED ABOUT [ISIB] EARLIER, TO SEE WHAT I
COULD SEE.  (GOD, AM I NOSY! (NOSIE?))  ANYWAY,
+  ADVISING GCGAG SEEMS AN INTERESTING APPROACH...  
+  SPEAKING AS SOMEONE WHO'S BEEN BURNED BY GIVING PRIN1 ONLY ONE ARGUMENT,
I RECOMMEND ALWAYS GIVING THESE WRITING FUNCTIONS THEIR RESPECTIVE FINAL 
ARGUMENTS.  I PERSONALLY HAVE FOUND XUTIL'S TRIVIAL LITTLE WRITELNTTY 
FAIRLY USEFUL; THE OTHER NICE CANDIDATE
IS PrintOut.  (<- whoops - I thought ↑X↑U would upper-case the current word.
I now realize it UCs the entire region.  Why doesn't EMACS have a 
"undo what I just inadvertantly did" command?)  I twiddled P-PLST to use
PRINTOUT; and it now seems to work correctly.  (We probably should merge
our respective versions of this function.)
+  Final comment: those *.PAGE-RLL files are only usable if the associated
RLL.EXE sysout is still around.
Otherwise you may as well save yourself some space and delete them when
disposing of the corresponding sysout.

[By the way, the algorithm for aborting a session is:
	(i) ↑Cing out of the current InterLisp environment,
	(ii) closing files as necessary,
	(iii) noting the extentions of the various *.PAGE files, before
	(iv) deleting those *.PAGE files, then
	(v) renaming *.PAGE-RLL to be *.PAGE files, WITH the extentions
		you noted back on (iii), and finally
	(vi) reenterring that RLL.EXE sysout.
 ]

Anyway, do send me your improvements/suggestions/criticisms, etc,
sooner rather than later.  I'd like to start chisling
into granite, rather than continue sculpting in low-tide sand.
Also please send along other questions -- in particular that list of 
still-to-be-documented units.

-----
EMACS:  I copied the "Time Only" command from your EMACS.INIT file.  
Freeing up that space helps to read the long filenames I constantly
seem to be editting; and besides, anytime I don't even know what day it
is...  With the same goal in mind, is there someway to remove the 
left corner's 6 superfluous characters: "EMACS "?

Next: why is it the first time I use EMACS in a session it appears unable to
find the filename I give it?  Ie EMACS tells me I'm now editing a new file,
even though I gave it a good file name -- one which it finds when I then
read it in using ↑X↑V.  Any ideas?

Back to FSeeUnit -- well, first a complete DEMO, and then FSeeUnit --
actually, first that complete DEMO, then some timely Rand stuff, and then ...
-- no, first DEMO, then thesis proposal, then FSeeUnit... -- oops, 
what about MACROs?  oye.

Russ

Ahh, I can hear the dreaded malathion-laden helicopers overhead.
-------
                ---------------
-------

∂07-Sep-81  0006	Steve Klein <SKLEIN at USC-ISIB> 	congrats on resync 	congrats on resync   

welcome back to the world...i haven't digested your message yet.
short status until i formulate a longer one.  coming along nicely
on staring at pieces of the system...the basic problem of "acquiring"
your "mindset" in order to semi-justify / understand what goes on
when.  also testing my understanding by trying to feed stuff to other
people at the same time.  also made a bunch of "changes"/extensions to
some functions, but couldn't get new versions to compile, so just
accumulating deltas for the moment...i'll find out why you can't
login direct to mancom.rll, but feel free to log in to my account.
on other things, do you have access (know where to find) a manual
for emycin?  i didn't see one when i was up there, was wondering if
its possible to get hold of one...
i'll send you more status on world when i digest your msg on tues.
steve
-------

	(klein, con't)
∂TO SKLEIN 14:49 13-Sept
More than you ever wanted to know...
Steve -

I figured you may be wondering what I've been doing these days -- ie why
haven't I sent along a set of pointers to the promised RLL-with-subunits
systems.  Well, I've been piddling around.

In case you're interested, I'm sending along a lengthly description of
the latest "RLL glaring omission" which I've tried to plug.
(Actually, I'm really hoping you'll have some comments about all of this,
which will make it yet gooder.)

Turns out RLL needed a more general notion of inverses
-- of which Inverse is but a (useful) special case.
This will serve many functions in the current unit/slot/value
system, but may turn out to be superfluous when dealing with propositions.
Still it should serve as a lead-in to such systems.

So I created and merged in the PseudoInverse slot.
The value of S:PseudoInverse will be a list of elements of the form
(T f1 f2), where T is a slot, and f1, f2 are functions.
To illustrate the semantics of these values, consider the example
which motivated this.

The value of RLL.STATUS:Networks is a list of KBnames -- eg
(SLOTS LISPFNS EURISKO ...).
Corresponding to these entries is the value RLL, on the DependentNetworks slots
of each of SLOTS.STATUS, LISPFNS.STATUS and EURISKO.STATUS.
Note that RLL, SLOTS, LISPFNS and EURISKO are NOT units; and so we cannot
say that Networks:Inverse = DependentNetworks.
But we do want something quite similar 
-- ie adding the value FOO to RLL.STATUS should cause RLL to be added to
the DependentNetworks slots of FOO.STATUS.

Enter PseudoInverse:  We state the 
	Networks:PseudoInverse = ( (DependentNetworks ENSTATUS DESTATUS) ).
The various inverse updating mechanism know this means that for each value V
on U:Networks, the DependentNetworks slot of (ENSTATUS V U) will have a 
corresponding value: (DESTATUS U V).
[ENSTATUS takes a single argument, and PACKs on a ".STATUS" to its end;
while DESTATUS strips that ".STATUS" off its single arg.
Here we are just giving these functions an addition argument.]

Note that 
	DependentNetworks:PseudoInverse = ( (Networks ENSTATUS DESTATUS) ).
For the time being, (<= wierd expression, ain't it)
I am pretending that
	PseudoInverse:PseudoInverse = ( (PseudoInverse H1 H2) ).	(*)
where 
  (H1 y x) = (CAR y)
  (H2 x y) = (CONS x (CDR y))

[Consider what this means:
 Spse S:PseudoInverse = ( (T f1 f2) ).  This (*) statement means that the
PseudoInverse slot of the unit
H1[(T f1 f2) S] will include the value H2[S (T f1 f2)] -- ie
that T:PseudoInverse includes (S f1 f2).

That certainly works for the DependentNetworks/Networks and
PseudoInverse/PseudoInverse cases.
Realize that S:Inverse = T is just like saying
	S:PseudoInverse = ( (T IDENTITY IDENTITY) ) 
-- and this (*) rule works for these cases as well.

However, there are cases where (*) fails.
[Consider (f1 a b) = (CAR a) and (f2 b a) = (CONS b (PLUS (CDR a) 6)).
 In this silly example, we have Owns:PseudoInverse = ( (Possessor f1 f2) ).
 Now what should happen is
	Russ:Owns = ( (Shoes . 1) (Socks . 2) )
 implies
	Shoes:Possessor = ( (Russ . 7) )	and
	Socks:Possessor = ( (Russ . 8) ).

 If Possessor:PseudoInverse = ( (Owns f1 f2) ) for these same f1 and f2, then
	Socks:Possessor = ( (Russ . 8) )
 would force Russ:Owns to include (Socks . 14), in addition to its current
 (Socks . 2)!  Clearly for this example, we want
	Possessor:PseudoInverse = ( (Owns f1 f2') ),
 where (f2' b a) = (CONS b (MINUS (CDR a) 6)). ]

The problem is the H2 function.  It should be something like
  (H2 x y) = (LIST x (G1 (CADR y) (CADDR y)) (G2 (CADR y) (CADDR y)))

where (G1 f1 f2) returns a function c, such that	|
  U = (c (f2 U V) (f1 V U)),				|
and (G2 f1 f2) = d means				|
  V = (d (f1 V U) (f2 U V)).				|

<It's easy to confirm that 
 f2'[ (f1 V U) (f2 U V) ] = f2'[ (CAR V) (CONS U (PLUS (CDR V) 6)) ]
	= CONS[ (CAR V) 
	        (MINUS (CDR (CONS U (PLUS (CDR V) 6)))
		       6) ]
	= CONS[ (CAR V)
	        (MINUS (PLUS (CDR V) 6) 6) ]
	= CONS[ (CAR V) (CDR V) ]
	= V,
as desired. >

However, I've no idea how to construct that H2 function 
-- nor even how to automatically verify the condition marked by | above.
So for the time-being, I'll use the simpler H2 function, pretending that
this covers all the cases.

Anyway, another big win of this approach is that we can now accomodate
multiple inverse.
For example, we can now simultaneously indicate that
	John:Mother = Mary  =>  Mary:Child = (Fred, ...)
  &	John:Father = Fred  =>  Fred:Child = (Fred, ...).
Earlier we'd have run into problems as we could either state
that Child:Inverse = Mother, or Child:Inverse = Father, but NOT both.
Now we can state that
Child:PseudoInverse = ((Mother Identity Identity) (Father Identity Identity))
& Mother:PseudoInverse = ((Child Identity Identity)) 
& Father:PseudoInverse = ((Child Identity Identity)) .

[By the way, the existing mechanism for slot Format insures that this
inverting sort of stuff is distributed to each member of a list, set, ...]

Other changes:
	The value of a slot's KBUpdates slot is still a function, but now
this function has more responsibility -- it will do ALL the KB updates,
including the inverse sorts of things -- including those PseudoInverse things.

Also, those sub-unit things belong, I think, in a seperate KB,
soon to created and christened FIELDS.
We can decide later whether this should be included in the
nucleus or not.

My final comment answers MRG's objection to RLL's use of things like
	(Brother Russ (Miles Wiley))
rather than
	(Brother Russ (SET Miles Wiley))
Turns out that change is trivial -- requiring only thatI make a small change
to the FnForxxxing slots of the various slot foriat units -- FSet, FList, FBag, ...
(Of course eventually this sort of change should be made on the
MultipleElements unit -- recall thatMultipleElements is one od the format
characteristics.)

----
Comments, criticisms, major objections?
¬
By the way, how is life iN general?

FInally, I'll be a(%C9IS]Nαβ3πS/⊃βS#O→β←↔.Y9↓α.s≠?K'+;πS.ceβ'"β3??←→β3'↑(4*%>c1β*β≠π'⊗ceβ/≠eβSG∪?W∨F{WQβoIβOS∂I1βS↔K';≥π#=β∨/!β7eπβπKQε{→βSFKMβC⊗{+↔∂ h+?≠2βS#∃ε;K?Wv!9↓α↔+Qα%>c1β∨O3∃βg␈)β∂πfaβ'→ε9β?πβ?KS.s'SeεK'O-→84(hRKWO_h(4({	Q6O/↓5aEα↓EQIHJOS↔6)α/3.K9↓r≤Z2⊗&rβπQα-~
6&≤J	iM∪∃iαn{K∃β&Cπ9βN{Uβ↔6+Iβ←∞sS↔⊃π#=β/v{]99r↓↓↓↓α4*S{QαJ∩:βπQα≥)6ε$hP4*∨⊗+↔SMjh4*SFKMβ7/≠Oπ∨*β←'3bβCK?⊗3eε≠?;S∞K9β7␈∪∃βSF9βg␈)β↔[/⊃β←πw#↔⊃β&yβK↔∨β?;⊃π#=99ph*π≡[';≥π+A⬬;πgMbα%βO.)βS#*β;↔↔"β≠?Iπ≠?7↔&C';≥εc'/∃π##∃βv{S'?rβ?_4Ph)>$yαN.d*&9↓9iQYβ⊃E6O/βP4*⊗+SWKrβ∂?7n+;SLhQ↓↓)αα7eβ≡{77↔w#Mβπ⊗)βCK.3π∂↔"βeβ&C?O∃π≠'33J↓	)~↓55β↔+Qα%>iβOW⊗)βg?*βπ3K.∪d4R↓↓)↓ε#↔∪W≡+⊃βSFQ99ph(4)∀SWOSN3'∂π&K?;πe≠3?S~⊃1βC/∪#πC~β¬β#N+KπK≡Ce1β∨+∂!β&CπQ1¬≠?7↔F{]1β
βW;'"β7WO h+#π6)βO?n)β7'vK7W5π≠↔Qβ}1α+W∨#'≠'≡S'?v2O3␈#EβSzβ∃β>+3176{K'↔"q↓α¬π+;'PhSO#?.c⊃β;␈!β#π4)βπ;Jβ↔c'∨#↔;∂*βW;3/≠Mβ'"β∂?;&';M∧"&J⊗≥"2eβ≡{7∃β⊗+πO?rβ≠?Iπ##πPhS↔c'∨#↔;∂*q↓απ"βS#∃εk?7↔w!1βSFQβ'v3=β'~β∪'≠7+O∃β∞s⊃βO.∪+↔∂"βS=βn{∪'≠N≠πS'}p4)#6K¬α7L+OO↔w#'π26KKSW∞bO3?'→%1β↔+Qβ∨.s↔KπfceβSF)βO↔"β?→β&C';∨~β3'/*α∪↔O∨⊃04*FK∨"3/3↔2∪.391α&z∂?7π+S∃1∧~ZWO."e1∧#↔≠:/≠↔∩Jaα3'∨α≠91∧#↔K'6+∩≠K}i04*≡c?SN/≠↔∩'t∪W'3&K;≥1¬+O';<3W;∂&K?;MbαO3?'~W'g"≠K?jaαWO-#>∨↔%≠3?S~aβπ;O##';8h+S#∂!β∂?w#π';~β¬β≠.s∂S'}q1β↔&→β↔S~q↓α7∞seβWvKSMβ≡+↔5β&yβ∃εk'OONs≤4)⊗#↔≠'vKS'?v1	β≡{;S↔w!1βSG+Mβ#.['3Jβ?O∨+K';:βS#↔M⊃βK↔∂≠?9β6{Iβ↔FKOS↔v≠∃84U+;≠?↔#W;π&+3e1π##'MεKMβπfaβ∂?oβ3π'w!βπ;"β;=β≡{3WSN{91β≡K;∂∃εKQβC⊗{πgIβS'/_4+πrβ';SNkπS↔eIβ←'&AβS#*β∨↔;/∪π1βπ∪?3.iβ?→ε≠?;O'∪π';'→84)α↓)↓α&{W
β/≠↔⊃β&yβSπfYβGWM#∃β¬ε∪'Qβ∞∪?WQ¬##∃↓∀#↔≠9∩βG3?"β?→β
βW;'"↓55β>C'∂ hQ↓↓)αβπON≠π33Jβ7↔K>+⊃βS};↔S#/⊃βπ3bβ?→β&C↔O∃ε#↔≠'vKS'?v1βπ'#K'/#↔M9αα%↓#∂ 4)↓αQ↓β3.OQβNs'S'∞c3e%ε3↔3Qπ##πQ∧C'∨"f+[↔2&+≠9β>{W3⊃ε3'31π##πQπ∪?3∃b4)↓αQ↓β/!α%βv{]βπ?∪↔∃β&CπQβO!β∪?/≠9∨Qαi5βπ"β3↔π∨!β'9εKSMβ∨+KK↔w!β';≤K;π&K?98hQ↓↓)αα∂↔K&';3Jβ≠/Iπ3πK'∞∪3↔LhQ↓↓)αβ←∃βF[∃β&yβOC.≠'≠eπ;#'∂BβS#'v;MβSF+eβπ⊗)β∪↔6K;↔⊃εM1β∞s⊃β←FK∂!β∂∪∃4R↓↓)↓π≠'7CeIβπO≡+KS'}sMβ?rβS#'~β';S.sO'?v1β?⊗S↔∂Qph)↓↓R↓αW"β'Q∨~β;?Qε≠3↔π∩βS=βn)β←#/##↔I¬##'Mε#↔≠'vKS'?v1?π≥≠↔KSN{;π1ε#'∂#␈#?7dhQ↓↓)αβ7π/-→β7W≡AβO↔w≠∃β≠␈⊃↓∂}sOSπw#M	9αα&∃βO→αOS/3∃↓&+≠';,!	βJβ#'MεCπ'Kf+;∨S@h)↓↓R↓βπ;"βO#?*β∂?3␈⊃1β?∩β#'Mε;↔;∪/⊃βπ;"βπ∨∃bβ?I↓rq84(hQ↓↓)αα;?]εkπg*βS#↔⊗)β'Mπ≠?7↔&C';≥π#=βO∂Iβπ␈+QβSF)αOS/3∃αVtJQ1β&+≠';.!βπLhQ↓↓)αβ∪↔O∨∪''v9β¬β≡{;OS∞sQβ?⊗S↔∂Qbβπ;⊃εC↔;∂*β#π[Ns≥↓9rq↓αSFKMβ'~βO?7*β7↔Sλh)↓↓R↓βSgε)β?→ε3π∂QZβπ;⊃∧Iβ∪?r;Qβ/v{]β#␈9βS=ε;=βπ⊗{WQβ≡g';:βπ;g&C';≥ε?W"β'Q8hQ↓↓)α↓"'9ε3π∂QbβOW∂BβπOO/∪S'?w→β7'>CQβ↔6+9β*β7↔S
k7↔S
k3↔[.a9↓α≡{;O'&+IβSF(4)↓αQ↓βG.+OS'}qβ?→π;#↔SF+IβSF)αOS/3∃βWvKQβ'~β←↔3bk∪↔≠Ns↔⊃β≡;Mβ&C'L4R↓↓)↓∧SWOSN3'∂π&K?9β≡c?Q9Hh(4*>CπQβO→βg?/⊃β∨↔v+Kπ1π3'↔]ε≠?;∂/∪;';:β;↔∨∂#';≥π##∃β/C'OS.s∂∃β}1β¬β≡c?Q⎇ααπL4V+cπ7εc∃1βN1απ;L∪'K⊃εCπMβ
βSgCN≠π1β≡c?Qα6c'∨#%≠C↔↔"aβ#?:βS=βv{SπS*βπ;⊃h+K↔≡{3[∃π##πQπ##'Mπ≠3?QεKMβ;␈!βK↔f+[π;"βS=αε+;∨WNsM84R↓↓)↓∧s↔[↔∩βS#?.;#Qβ∞∪?WQπ##πQαi5β/!βg?*β∪=βF[∃β
β∨??"βC?'w!9αSFKMβC}K;SLhQ↓↓)αβS=βN+Qβπv{S#↔∩β?→α∀b1∨MεK;∂?oβ3↔S.s↔OO/→84(hQ↓↓)αα?;∃ε≠?W3"β∂?;≡{∂Qβ
βGW'≡Yβπ;"β∪'K'IβO?g+S'?raβ←#N≠!β∂≠'∂πfceβK.c'↔Mε{84)α↓)↓β
↓
;?$k↔π;Ns∨≠WdC↔K∃∩β∂?;∨#π;Qπ#=βO/∪[∃β&C'Mβ7+;∂SN{99↓h)↓↓R↓αS#O→β[πg+∃β←␈+3⊃β⊗)βOS␈∪↔⊃β}qαSgεK∂π2ε+;∨WNqmβπv!βS#*α≠3'>CROC.+⊃jS|;↔R[∞cW∀4R↓↓)↓ε3W;∂&K?9β>{W3⊃α∪/;?:⊃βS#O→β7↔∞sQαC.s∨W'w→β3π≡[↔⊃β&C'Mα6c'∨#%≠C↔↔ h)↓↓R↓β∂#∂∪π∂S/∪'OSN→84(hQ↓↓)ααπ;?&C↔Iβ≡{3WSN{9β'~βπO.!β?9π##∃β⊗+π3'VS'?rβS#π"β?WI∧kπ/↔≥≠↔;O,3?H4R↓↓)↓ε3K'↔v!β'Mπ≠'7CgIβ¬β≡C?KSF;⊃β&yβ≠π≡K3'S∂#∃β∂}k7W;N≠πS'}qβ←'&AβS#*β7?K(h)↓↓R↓β∨↔v+Kπ1π≠3?Qbα∪?7∞K:Sgε)mβ←FK∂!βO→βGWO#∃β;N≠∃β≠␈⊃β7πwIβOC.≠'π1ε≠πO↔~4)↓αQ↓↓5jβ+WO"β3'/*βS#∃ε≠?;;.≠S'?rβ↔S>+↔9α&SεK∞s∨∃β∞s⊃αK∞s∨⊗SOβ∃84R↓↓)↓∧{;∃β≡{W3⊃ε;'[∃∧33'∨G"OC↔.!j∪?n':SOβ∃βSF)β[πg+∀4)α↓)↓"4c'ORr↓"W;O"SgC*↓"16r⊃↓!U↓απ;L∪'K⊃J↓"16tzQ↓!U↓απ;Mβ↔;∨.K9%%JH4)↓αP%↓↓ααW;K/≠SK'∨#↔∩SOβ∃$4R↓↓)↓ε{H4)α↓)↓"4c'ORr↓"W;O"SgC*↓"16r⊃↓!U↓απ;L∪'K⊃J↓!*7.k
O3␈"[π1∧∪'K∩≡CπKπ∨#↔Iα6c'∨#'I%%$hQ↓↓(J↓↓↓α.sK↔O'∪'∂S."SgC*H4)↓αQ↓β←F+K∃αε+;∨WNq
MUT∪'K∩≡CπKπ∨#↔Iβ&{↔MαtzQβ'v≠3W∪*α≠3'>CSe1π;#↔K.KMβSF)β[πg+∀4)α↓)↓β}1βS#O→βO3␈!β≠?∩β7?O"β'K'→β∪?/→84)α↓)↓α↑3↔↔1ε3K↔∃π#=β'>s?K∃π##∃β.s∂3?≡K;≥↓D23'O$q↓99rαW;K/≠SK'∨#↔∩SOβ∃%1ε3?Iβv{]:thQ↓↓)ααπ;g>e1βO!β'Mπ##'M∧#?7πNrSgC*βO3?"β←#'≡Aβ'Mε≠#↔∂↑+⊃β←F+9βπ≤[';≥π;#↔SF+H4)α↓)↓α6c'∨#%≠C↔↔"Ca%βO→β7↔∞s';∨7+1↓5jβπ;⊃εC↔K∃π;∃β←␈+3⊃β6K;⊃βO!β'Mεs?Q8hQ↓↓)αα;?S*βS#π"βS#'~α∪?7∞K:Sgε)βOC.≠'≠'≡S'?rβ←?Wf!↓#?∩βπQβf+πOQπ≠#?Wf!%βC/≠!4R↓↓)↓¬#gC'≡2'⊗!β';&yα≠3N;#ROε+↔⊃jn/↔N≡+;O⊗6{I04R↓↓)↓π;#'∂Bβ'Mβ}s3eβ≡{KS¬π;#πQπ;∃βK.33eπ;π;Qrα?!β>+319rp4(4R↓↓)↓¬##↔K*βπK∃ε	βWv≠!β?2βC↔?εc∃β←Fyβ#π6)β#π"βS#↔O⊃β#πv#Mβ'rβS#'~βC'∀hQ↓↓)αβK↔∂.sS3eαi5β3N[∃α⊗∂#7∞q↓#O.)↓
%εc'↔⊃ε?W"βS#∃π#K↔↔~⊃%1α6#37∞p4)↓αQ↓↓#≡+∃↓
≡;∂↔fcπS'}qβ'9ε	αCπ⊗33∃¬≠↔7πw#'
αv+S←?⊗Y	%1ε;⊃αnK-αx
  *  ("On Inheritance in Knowledge Representation").
  *  (Some of the now old-ish stuff by Sussman, Doyle/McDermott and Reiter on
  *  dependency and multiple inheritance addresses some of these issues as well.)

  *  Anyway, I strongly agree with these papers in insisting that such information
  *  be explicit (but Im sure you'd guess that would be my position, based on
  *  RLL's basic design objectives); but it's still not clear what the 
  *  best (or even what acceptable) approaches really are.
  *  I'd love to hear any solution to this problem you have...

NittyGritty: Interlisp seems to have this interesting property that when the
directory under which a file was created is different from the directory in
which the file is residing, then prettyprinting any functions from that file
causes that function to be marked as changed ("can't find <mumble>---, loading
from <blarf>---").  Needless to say, since all the RLL files were made on one
of your machines, looking at their fns causes havOc with the filepackage's
beliefs concerning the world.  Any thoughts/solutions/pointers?
  *  Finallq a queStion I can answer!
  *  Use the function CHANGE-SYSTEM, on XUTIL (or was it XUTILM?).  I think
  *  this will do the job.  Note you need to use this for (eventual)
  *  MAKEFILEing of the various files -- which I think is done automatically
  *  by some advise to MAKEFILE.

wrt oTHERs type stuff...it seems to me that the more complex these
specifications get, the more that must be known about the full context
of a GetValue  =>  non- locality/granularity of representation,  encouraging
"monolithic" optimization (refers to preds, functions, use-value forms).
I can definitely see how they could help, but also forsee pitfalls.
  *  I too anticipate a great many problems with any list I might construct.
  *  My current objective is basically to enumerate these values, and indicate
  *  (my expectations for) their current semantics.
  *  Ideally I would like for these values to be strongly "implementation
  *  indepeNdent", in the sense that they make no (strong) assumptions
  *  about what the x:ToGetValue functions really do.  Likewise for the
  *  why values wrt x:ToPutValue functions.

*Do* stuff...I don't know exactly how you would store one of these values
EXCEPT as the syntactic string (maybe I misunderstand...). I'll await
clarification.
  |      There's also some hassles when dealing with those *DO* special 
  |      values -- should they be treated as simple "syntactic" values, or
  |      "evaluated" -- ie how do I store the "value" (*DO* FSeeUnit SofU)
  |      as U:S?  As I said, more on this as this comes important -- unless
  |      you've some insights on this whole can of worms.]

  *  Oh, the point here was that typing (something like)
  *   (PutField U S F V)  will actually store (*Do* FSeeUnit SofU) on U:S.
  *  Should the user have "permission" to store such a value?
  *  Or what should the user actually put a value like 
  * (*Do* FExecute (LAMBDA (u s o) (...))
  *  on, say, TypicalX:SlotY?
  *  Note that the standard process for verifying the value fail here...
  *  Similarly what is the "real" value of TypicalX:SlotY?  That 3-element
  *  list, or the value of that final function, applied to TypicalX, .. or what?
  *  It gets even messier when you want to add on a value to this TypicalX:SlotY,
  *  etc.  Anyway, I've just sorta hacked around a bit, to get system which
  *  seems to work for most of my applications... But I'm by-no-means happy
  *  with it.

Advising GCGAG doesn't get anywhere, since fn does "pokes" to somewhere,
rather than being an active participant in GCing.
  *  Did you find that function?

If you do an Emacs ↑X↑U (uppercase region), it can be undone by M-X Undo,
if you actually haven't seen this, it usually will fix region deletions and
such things too.
  *  Thanks.

Given your defn of aborting an RLL session, I shall take it upon myself
(unless some reason not to) to write a suitable abort function.
  *  In what language?  Do you mean some DO or MIK file, to used after you've
  *  ↑Ced out of LISP?  Or some LISP function, which does all the necessary
  *  running around within LISP, and then LOGOUTs, inserting the appropriate
  *  name in the buffer; or ... ?

I don't think I ever found out from you what you were doing at Rand...
except associated with ROSIE (as I recall)...what's the status of your
contribution, and what's the status of ROSIE in general (I seem to recall
claims of "releasing" it at some point, whatever that means).
  *  No, that ROSIE thing was a one-shot thing a while back. 
  *  As best I understand, Henry Sowizral (HENRY@Rand-Ai), is now "in charge"
  *  of ROSIE.  He plans to add considerable featues to it, some along
  *  the RLL-ish lines of facilitating the modification of ROSIE itself using
  *  itself (ie the ROSIE input language).  We'll see.

  *  I'm actually working on the "Planner Workbench" project.
  *  RLL will be used, in the initial implementation, as nothing more
  *  than a DB management tool.
  *  Actually, their notion of the final system represents, to me, a good
  *  place to start serious research.
  *  So, for now, I'm in a position of addiog a few new bells and whistles to
  *  RLL, to get it handle this task. (Yawn)  Eventually Keith Wescourt (and
  *  perhaps Rick Hayes-Roth) will be sufficiently indoctpinated into RLL's
  *  ideas and workings that I can leave them to play with it, freeing me
  *  to do thesis sorts od∧AiQ%]Of@!EkhAIK[CS9S]NA=\[GC1XXAM=dAEk≤AMSq∃fXAC9H~∀@T@Aa∃aQCaLAG←[5K]iS9NA←\↓iQKSHAae←A←gCYLXAKi\R~∀4∃[←e∀A≠β
&XAS_As←j↓eK[←YJAiQ∀Agie%]N@E∃≠βπ&DAMe=ZAiQ∀A[←I∀AYS]∀XAiQ∃\~∃C1XAiQ∀A[←I∀AYS]∀Agik→LAGe=CWf@!∩Aie%KHASPAM←d↓s←j\8\R\@↓'KmKICXAa¬eifA=L~∃i!JAaC
WCOJ↓kgJA¬Eg←YUiJAG!CdAY=GCiS=]fAC9HAg←5JAgK∃ZAi↑↓/β≥(↓iQCh↓gieS9N~∃CPAiQJ↓Me←]P\\]M∃KXAMIKJAi<A[←I%MrAi!JAeK1KmC]PAG←I∀@Qsk,XAsk,R\~∀@T@A=PAoK1XXAi!C]Wf↓MWdAQesS]≤\\\A$OYXAMiSGV↓i↑A
0A←\AQQJ@QIKYCi%mKYr$AQkO∀~∀@@(@A	CQC	SgOf\~(~∃∩AQeSKH↓i↑Ae∃ae←IUGJAs=kdAK5CGfA→SYJ[9←h[M=k]HA∃ee←d0AEkh↓E←iPEK[C
fAMS1JD~∃¬]H@E∃HAMS1JDAG¬[JAk@AoSi AiQJ↓MSYJQCfA1←]NA¬fAMS1JASf↓MkYYdAK]←UOP~∃MaKGS→SKH\8\EKHλAI←KLAG←[AYKiS=\A←\yKgFxXA←L↓G←keMJXAo!SYJ@	K[CGLDAI←∃g\Oh$\~∀@T@A/∃YXXA%hAI←∃fAWK∃`AQCAaK]S9NAi↑↓[B\@↓∩OYX↓g←←\↓gK]H↓s←jA∧AMkY0AgGKario
  *  to play with...

<MANCOM.RLL> is now log-in-able.  Seems you have to ask the system types
to make changes to the accounting crud, rather than this property being
inherited from the superior directory (such stupidities in the world).
  *  Just another way these higher-ups justify their continued existence in the
  *  world; and of continuing their affliction of maximum misery to all involved...

Did you have a chance to look for an EMYCIN manual (or know where I can
ask for one)?
  *  I did indeed look around; and found myself threatened with various
  *  unspeakable bodily-harm type punishments if I dare to bring up this
  *  sore point again.
  *  It seems that manual is "almost done" (as in "your check is in the mail") --
  *  and will be deliverable just after these "last few updates and additions"
  *  are incorporated... Where have I heard that before?  
  *  (oh, I was from my lips? whoops...)
  *  Anyway, they promised to tell me when; and I'll forward either that
  *  information, or the manual itself, as soon as I can.
  *  (If you want to nag as well, try CSD.BENNETT@SCORE and/or CSD.PEAIRS@SCORE.
  *  I don't think their thug-squads travel that far; and I assume you're
  *  responsible enough not to mention your source (ie poor, defenseless me)
  *  to them...)

Final-- answering your basic question.  I wasn't convinced by your argument
for PseudoInverse slots.  Rather than question your mechanism, let me
question the instances in which you want to invoke it.  
  -  whatπs wrong with havingan RLL unit which represents the
    existence/essencE of RLL...seems to Be only an extensign of the
α    purpose of the curpent RLL.STATUS unit,  Doesn't this caeSe your
    objection to the use oF the normal Inverse slot tk go away?
	* Yes, in this particularinstance.  (Actually there are some
	* potential implEmeftation-leve@0Aae←	YK[f↓oSiP↓iQCh↓Caae=CGP@4Z~∀∩(AECgαK∂π3gIβ↔≤WO∃∧~>J2bβSO'↔M¬##∃βv7∃1∧;⊃βε{@∨≡≤-GJπMPhP∃$ππ⊗}W↔'∀	FO∨EDε}2
~G~ε≡Mvo~e⊃PPJ$	ε␈>↑lW$≥~~.4→>_-↑≠→(∞|<h≠M}λ≥z≡λ≤Y,≥≠≡(∧,[|Xl\λH≠,T~;]
t∀≤y.\≠r;Nl<\q.5C"B%$∀Y8l≥≠λ~
}h_<NM9Z8m≤;λ∃
(∩5.<0uSld_;Y∧	5<y(L9[Sld≤{≠nNh≤y,]99λ¬U#"B%$≥~→-≡H≠{MO(≤Y,≡{{Hm|H→/
<⎇→-ly(≥l≡h≥≠d[|XlT≥~_.D~;]L↑\y(∞
z;]↑Kβ"A∃H≥~T⊂uTj↑y9⊂O∀≤{≠nEλ≥≠dy=λ∀≥X;∞\+Hλ
M→(≤l≥9(≠-≤z≥λ,(≤x-≤λ_8M}=β"A∃H⊃_.L=≡4Uλ≥z
≤zλ≠L\9≤h∞Mh_Y$∞≤Y<l]]λ⊃M}H≥~T∩8	j≡x2gsλ:7P3Yz⊂0P≥0v2rKεEεEαU⊂'7]⊂0w<H6wy2N⊂;rP≠p|P9→spy2λ!k9j\rr!<H0w2⊂∩4st&→{2v"→s7⊂0\FE∧Uλ(9rzY7dw;→y9ryK⊂0w2λ0{7tY⊂:40]⊂4w:→y6rr~py<P∩hyraU's⊂9[7z⊗εB∧U⊂0[2⊂4z≤P9rzλ7s⊂4→pr0qZ2yV⊂_v:7sYz42yεE∧Uλ*42y→P0y2H4w⊂3_qz⊂9Y{2y0[⊂9v7]9P4wλ:44yH1pz2Ywy<PVP0w→⊂4z∪[6⊂12CE∧U⊂_P92p[⊂57|H:7P3~w2⊂:~2vP9]0y:⊂≥5P24\px82Xy↔εEαU⊂∀"≠w∪z worry, I'll not go about doing thiS until AFTER more timaly
	* things on my queua have been cOmpleted.)
	
  -  fop multiplE inverses, such as Child --> {Mother Father}I question 
    whether the proper relationship isn't  Child <--> Parents which IS
    conceptually one-to-one.   More generally, InverseS should be able
    to handle many-to-one situations as a normal course of events.
    Is there a qpecidic reasoN for Inverse being single-valued?
    So far, I'm not famiLiar Enough with expressing solutions in this 
    type of formalism To go any farther.
	* I'll grant one can regard Children <-> Parents as the natura`_~(∩TASαs[↔K≤)βK↔fS'?r↓55βNqβ≠π∨!1β'"β←πMε{;3eπ;'S!π≠W∂!εK∨Wn+;SMπ##πPhP%)αJβ7π;∞;↔⊃β&yβ3'6)β←'&AβS#*β3'7M#πS'}sMβπ∨≠?∂'∂#↔⊃β>KS!β&C∃4PI)βONs∨3∃o3π3W.!α';6+CO∃ε3W;∂&K?;Mph(%)∧{→β∂␈+KO∃πβ↔?Cf)↓#'v≠3@.M≥f:ε←≡6.fe∀ε6.]Dεo.=∧εn␈,Tε≡}\mw↔&≤-F(h!∃"ε≡L≥⊗nNlpπ&F≡@λ↓QB*H	]⎇~→.'R;]L↑\y(πT⊂z~-Lλ	D∞~_=∧λX=~↑NR;Nl<\q$π(⊂z
≥→λβ!!*H_.4≥y;
EHλ∀mt≥z≡$∞z≠⎇-Lλ∀S	D~y9.∧≥~→-T→\[mT≥~~.4→→<l>Z<≥
≥{Oc!!"B*D	;]Y.∞y)|d∞z;YmL+=X-N99-l<|h
≡h_;D
~<⎇
}Z8h≤xz0∩→w:↔εB∧U⊂&~urP6Xw<P7]42y⊂∀&&⊂*~4w3yK⊂:44\P1ww≥2w:4[w⊂12Ypw⊂4[⊂:42H20|yCEU⊂≥t2w⊂⊃7zsP≥pyP2→ytsw~w3P"Ui$ieS]P4z	yP5:\z⊂:0Zrs⊂:[:4v⊂≠7{FEαU⊂:7H3rz⊂_y3zw→⊂:7P~vx97]4w3@≠w⊂4jεE∧Uλ*44yH∀82i~0x9P≠tyw0[rr∀P∀9rzr≠dw;2\9ryP~yP;t_z⊂$w≥2y9b\P9t7]v2εEαU⊂40]2P12Yw⊂0v≠⊂0v7[3W⊂⊂∪w6<Vλ64urH"0z0T0w3rH7y⊂&XuryiYw9rc≠y⊗εEαU⊂0yH:42P≤tw3v→P$w;→y9rP≥0v:rH4yP9[P:yrY:v⊂#≠y⊂6w\z⊂1p\ryV⊂~z⊂;t[6εE∧J⊂12P≠2s:⊂~w↔↔↔βEεE'[⊂7z4→y⊂6p]:2y9K⊂:42\2P12H77z4~w3P4_x82w~w3W↔:44yH1ww9Zyz2w≥⊂92x≠y:4w→FE7sλ77z4~w3P7Y⊂77z→P4yP→4yqw]y0st[3V⊂$H;ww2→y⊂;t→z42yλ6|P2↑4yz2[1rP4\FE89≠qrr`$ing downhill at the same rate as the rest of the world...
	* I know what you mean.  I've been spreading myself so thin that
	* I've not really "finished" anythingin quite a while.  I do think
	* that headway has been made in each od my pursuits -- enough so
	* that "soon" abunch of things will find themselves done.
	* (Include here Fields, Rand stuff, macros, SPECialization, ...)
	* Still this part here is frustrating.


Steve.
---

  *  Miscellanous comments:

  *  First, I'm hereby stopping those now-meaningly "  *  " prefaces.

Second, Tom and I bumped into Greg Gibbons at IJCAI.
He now works for Schlumberger, as a mathematician, in France.
His boss decided it was time for someone to learn about AI,
hence his trip.

Third, what Is the implementation status there?  Until Bill's recent letter,
I'd Thought you'se guys were still at a sufficiently early stage that
nothing was being coded -- and you were, collectively, exposing yourself
to RLL.  More on this will appear in my letter to Mann@ISIB.

Too-da-loo,
	Russ
∂22-Sep-81  1613	Steve Klein <SCLEIN at USC-ISIB≡ 	smaller response to previouS msg    
To: RD@∞ACPA'*[¬∩~∀~)∂eKKQbACO%\~∀~)S]iKIKgiS9JAQ←\AiQS9KfAg]KYXA¬]HAi!K\AI∃GCrA%\AYK9OiQf↓←LA[∃ggCO∃f\\]QQSfA=]J~∃%fAIK→S]Si∃YrAi=oCeILAiQJ↓IKGCeKHAK9H@QK%iQKd↓oCrR8~∀~∃=\AiQ∀A∃kgQSMSG¬iS←]¬XAgiUMLXA$ACZAAeKiidA[kG AS\A¬OeKK5K]hA]SiPAe←kd~)giCi∃[K]iL\\]KaiK]g%←]CX↓←EUK
ifAg!←kYH↓ae←E¬EYrA	JAIKMGeSE∃HAEr↓iQKSHAkgC≥JX~∃ICiQKHAiQC8AiQK%dAGe∃CiS←8\@A
¬SeYr↓GY←g∀Ai↑Ae←kdAαk↔S¬nc↔[↔bβ∪↔≠w→9↓α&C'L4W≠↔↔7~βS-β⊗)βS#*↓?;gI	β3∂∪∨¬βεKS≠πfa84(hR?9β≡+OO'}qβπ␈∪Q1αJβ←K?&)β¬αdJNAβ6qβ←#N≠!↓"JβS#'vY%β∂⎇∪K↔∂&ceβπ⊗{KSMε	4+≡+OO'}q↓#?vceβ←F+9βπ⊗{KAβO→βg?/⊃β'∪.	1β;␈!βO?n+S#'v9β3'↑)β¬β∨∪πO!JaβW h+∪?r;QβWv#↔KO&;⊃βN{WIβ⊗+≠↔K.s∂∃β&y↓'w≠↔KSNs≥βSF)βπCπ∪?CKNS∃βv7∃βNqβS#(h+W63↔I	εQβ3};?WQrq;O?n+S#'v9β;↔.#MβSzβ∃β/C↔∂W&+⊃βπ7#↔Iβ∂+'SSNs≥α2M~A⎇hQ#?IεKMβSFKMβ¬π≠W∨∨/≠S'?rβ≠?IπβK∃7f{π∪'v9β↔c.→β∂7'→β≠?∩aβOπJaβ≠'f(4+7∞s'CWfS'?rq99%ph(4*␈+Iβ∂/∪K↔;"βOSπ'+M9↓∧	βKN+⊃β∪/≠∂K'π#'?9r↓αS#*β∨KπnkπIβ>C'∂!εKEβSF)βπ≡KMβ?0h+S#Ns∨Mβmaking choices about various aspects of the
utterance-to-be.  The way the whole system is organized is by putting
"choice-experts" at each point where a decision needs to be made.  The choice
expert makes its decision by asking questions of the "environment" --that area
of the world outside the grammar proper.  The questions are in the form of
pre-defined operators.  In the "grand scheme" the operators have the sole task
of accessing the KR (RLL) and formatting the resulting answers.  At the
moment, some 60-80 operators are defined (out of, perhaps, 200 or so to
eventually exist).  These operators, however, don't have a KR to muck around
in and instead just retrieve stored answers to questions or ask for help.  The
next task is to start defining the representation and implementing the
operators (one at a time) to really access the defined concepts/etc.
Consequently, the "threshold" of action revolves around getting this stuff
firmed up (as you have hoped for anyway...).  The general feeling is
eagerness, rather than desperation, since there are always things to work
on, but everything is soooo close now...

Otherwise, basically nothing new or interesting of note...I have this
feeling that the life of my car is growing limited (maybe just worrying...).
May the kiwi of happiness smile on your salt shaker.

Steve.
-------

∂22-Sep-81  1949	Steve Klein <SKLEIN at USC-ISIB> 	you rang   
To: RDG at SU-AI

hi again.  I lost a bunch of messages when our system crashed...if you 
zapped off anything today, I haven't seen it (ie please resend else consider
this message a noop)
steve.
-------

	(MANN at ISIB)
∂16-Sep-81  0447	MANN at USC-ISIB 	RLL progress     
To:   RDG at SAIL
cc:   SKLEIN

Russ:

I'm  trying  to  do  some fresh time estimates about how we can
make progress on the PENMAN code.  The grammar is coming  along
reasonably  well,  but I need to know better when we can resume
working on  the  representational  parts.   I'm  worrying  some
because  we've been on hold (but learning, of course) for about
a month now.

Could you give me an idea of how soon the fields implementation
will be done?  It would help.

Cheers.

Bill Mann
-------

∂TO MANN (CC SKLEIN) 18:06 21-Sept
Status
Oops, sorry -- I hadn't realized I was holding things up.  
As I've told Steve, finding and patching the thousands of
non-trivial cracks in RLL facade is a full time job; and I've been
guilty of doing perhaps too much of this, of late.
(I feel abit like thatDutch boy, trying to prevent A torrent
from escaping....)

To answer your question: I'm about one person-day away from implementing
a full working version of fiElds.
Most of this time will be devotedtk testing --
finding the bugs in the algorithm I am now feel "positive" Will work flawleqsly.
The problem lies in fi@9IS]N↓iQCh↓ICr\4∀~∃∩↓gQ←k1HA[K9iS←\↓∩OmJ↓EKK\↓S\Ai!SfAgQCiJA∃ggK]QSCYYdAgS]
JA'i∃mJAY∃MhAQ∃eJ\~))QeK∀A←LAQQJAo∃KWfA!CmJA	KK\AMaYSh↓EKio∃K\AG=]MKe∃]GKf↓C]HAYCGCi%←\v~)C]HAQQJAe∃[CS]%]NAi%[@∃βFMβ.+9β∪/3?S↔ ∧π&ZMvNvtfO↔>@¬⊗∞lEW⊗.L≡F. Q.7'.leBε∞l@εv␈t
f/:∞>G.&]nBε␈-≤Vw&≡M⊗}r|≤G6O=_Lt_z≠n,<kC!)8π⊂0[6⊂1p\ryP:~2P:0\uyP4_{2P1→rs⊂:~vrv<K⊂0w2λ9t7z[2⊂9w[w⊂12H12t4[2⊂6rKεE w≡{p|Vλ$Sv6λ6w{"H:44yH34rv→9P9z≥s3⊂0X7{2P≥42yt\Vx97\7ypvλ;y4z~w3P7[⊂6|P_srw2_]FE0[2⊂42[1rP9Z7zv2λ12P0X62P:≠P;wy~P7w⊂~z⊂7{→y⊂:4~yP;rYuVrw→⊗εE1_y94w→P:2y≠tw0vλ1:y7wzz⊂
4w⊂2Zz42yλ9rw9YTWεEβE$P4≠x2P:~2yrP→2v0|\P40{→w∪z⊂~:y:⊂≡wzy⊂_pzyrH:7wP≠zqt↔λ⊂ yP≥yzpv⊂2{2\<z44[3FE5≥yz⊂1[w;2i→rr⊂0]⊂7w1YW↔↔εBεE!dXwVεEαi:yyCEβ∧πTO SKLEIN@ISIB 10:06 28-SepT
Slippage
Damn thesa cOmputers anyway.
I lost A fulL day SatuRday, thanks to a combination od∧Aie=kEYJ↓ChA%¬]H[β$X~¬C9HAC\↓KCeY%KdAC
hA←L↓GCeK1Kgg]∃gfA←8A[rAACeh\A+]M=eik]¬iKYr0A∩Ao¬fACYIKCIr4∃BAE%hAEK!S]HA5rAgG!KIkY∀@ZZA5rAU←λA←\AQQJAgQkIK]PA←eS∃]iCi%←\AG=[[SiQKJ~∃Q←←VA¬E←kh↓C\A←IIKdA=LA[C≥]Sik⊃JA[←IJAiS5JAiQ¬\A∩A!CHAKaaKGi∃HAiQ%fAYCMh~∃o∃KV\~(~∃'↑8\\ACPAiQSLAa←S9hAiQ∀A
SK1HAgiUMLASLA←\AQQJAi=`A←L↓[rAgQSYX[Q↑[I↑↓COK]⊃B~∀Q¬fA←aA←gKH↓i↑Ai!JAUkMh[G←5aYKi∃HAgi¬GVR\A∩OY0AIKM%]SiK1rAOKPAi↑A%hAi←⊃CrX~)C]HAAKeQCAfAKm∃\AMS9SgPA%h\A3=jOYX↓EJAa=giKH8~∀~∃M←eer↓CE←kPAiQJ↓IKYCef\@A$AISH↓oC]h↓i↑ACMgkeJ↓s←kg∀AOksLAiQCPAs←j≥mJA]=h~∃E∃K\AC	C]I←9KHvA¬]HAi!ChA∩↓QCmJ↓EKK\↓[CWS9NAM←IoCeH↓ae←OIKgf@!ECgS
CYYr4∃ErA
YKCe%]NAC]CrA←QQKdA⊃Sgie¬GiS←9fR\~(~∃%kMf~∀~)!&A⊃=nACe∀AiQS9OfAi!KeJ}\\\A¬]HAQ=nASf↓s←kd↓]Kem=kfAEIKCWI=o\AG=[S]N|~∀~∀<dp['∃`Zpb@bbbd∪'iKYJA↔Y∃S\@yM↔→∪8AChAU'ε[∪M∪∧|@%%JtAMYSaa¬OJ@@@~∀~)⊃R\~)	←\OPAMKK0Ai←↑↓MeCuiYKH\A∩Om∀AEKK8AEKCQS]NA5rAQK¬HACO¬S]gh↓BAoC1XAM←H~∃gKYKeCX↓ICsf↓]←nX↓G←]m∃eiS]≤A←kd↓aeKm%←kfAMikML↓Me←Z↓ae←`↓YSgiLAi↑AQQJ~∃IKG←e⊂AaCG-COJ\8]iK\↓iQ←kMC]HAASGWr↓IKiC%Yf\@↓π←]g∃ckK]QYrXA!CmK\≥hAO←QiK\~)ECGV↓i↑A%∃β_Ao=eVAs∃h\@AQS[JA]SYXAQKYXA=\AiQ∀AEeK¬WI←o8AMe←9h\\]$AQCm∀Ai↑~)IKGS⊃JAoQ∃iQKd↓i↑AM1kgPAUπ→αA⊃←o\A∧AQ←Y∀AM←d↓BAoQ%YJ@Q=dAM←IKmKd$\@@~)!Keg∃mKeJQiQJ↓EeKC-MCgh↓←LA[¬g←GQ%gifR8~∃'i∃mJ\~(ZZZZ4ZZ~∀4∀∨)≡↓'↔→%≥↓∪'%∧@blhbp@d5∨Gh~))QSf↓C]HAQQCh\8\~∃'QKmJ@4~∀~∃]KYXX↓∩OZA9←nAS8AiQJ↓MS]C0AIKEUOOS]≤AgiC≥JA←L↓
SKY⊃f\@A¬fAae∃ISGi∃HX~∃%hOfAQCWS]≤ACE←UhA←]∀Ag←Y%HAICdA←LA!CGWS9NAi↑↓OKhAQQJAY¬gh@b@JAi↑↓o←eV8~∀~∃M↑AoQdACeK8OhA∩↓o←eW%]NA←8AShA9←n}@↓¬CgS
CYYr↓EKGCUgJA∩↓I←\OPAQCm∀AC]r4∃g←Y%HAEY=GWfA=LAiS5JAEK→←eJAQQSfA∃mK]S9N@ZZ↓∩AQ←AJAi↑↓MS]SMPASh↓k`Ai!K\\~)∩OHAAeKmS=kgYr↓CYY←
CiKH↓iQJA=iQKd↓]SOQP@Pf`5'Kah$Ai↑AQQChAQCgVv4∃Ekh↓M←k]⊂A%C]⊂[βRAU]G←←AKeCi%mJ@Z4AShA]CfAE=k]GS9NAk`↓C]HA⊃←o\A¬YXAKYK]S]≤v~∃IUJXACAaCeK9iYrX↓i↑Aa=oKdAAe←EY∃[fAG¬kgKH↓ErAi!JAgi=eZAs=kgJA≥ksfA]KeJ~)QCmS9NAiQ∃\\~∀4∃β]s]CrXAICiQKHAiQC8AoCgQJAiQ%fA[←IgKXA=LAiS5JXAQ∃eJOf↓iQJA	CgSF↓[Kgg¬OJ~∃$OHAg
QKIk1KHAi<AoeSQJAs←TAka←8AG←[AYKiS=\A←L↓iQCh↓←mKe¬YXAi¬gV\~(~∃)Q∀A↔∧A→∪→λ↓Q←YILAiQJ↓mCeS=kfA[%gGKY1C]K←UfAgkλ[k]SP←MSK1HAk]%ifXA¬]H~∃¬gg←G%CiKH↓Mk]GQS←]f8@A/Q∃\ASh≥fACY0AiQJ↓oCrA→S]Sg!KHXA$OYXA5CSXA¬Y←]N4∃BAIISEEY∀AMSY∀AgQ←]S]NA%hAS\↓←aKe¬iS←\8@A¬CMSGCY will
work as we had discussed:

Verification for all ComplexSlots, (such as Performers,)
is done by finding the function returned by a GetField call:
The value V may be stored on U:S only if V passes the test
administered by the function returned by (GetField U S 'VerifyAll).
[The verification function, in general, is (GetValue S 'VerifyAll), by the way.]

So how does GetField work?
As you guessed, it calls the function on F:ToGetField, which defaults
to DefaultGetField.  
A description of that function follows:
(GetField U S F oth) first checks to see if there is a subunit, on U:S.  
If so, it calls GetValue(SofU F), and returns that value.
(Here the F is treated as a slot, and the value of its ToGetValue slot
is used to do the work.  This may involve F:ToCompute, or anything else.)
Anyway, the more interesting case is when there is no such subunit.
Here the value of F:ToComputeField is used.  This function is applied
to all the arguments, and it is responsible for returning the value of
this call.  CacheField is then called, which uses the F:ToCacheField
function to (consider) storing that newly computed value.

The default field computer, DefaultFieldToCompute, does about what you'd
want:  It first gets the U:OrderedPrototypes, and walks along these
prototypes, searching for the first whose S value is a subunit
which has an F field.  Note the embedded GetField call uses the
others value of (-CreateSubUnit).  This tells DefaultGetField to stop
if there is no subunit.  (Note all the standard "others" values, used by the 
GetValue functions, are applicable.  And a few others - like this -CreateSubUnit,
and SAFEFIELD.  I reserve the right to expand this list as whims suit me.)

Anyway, if the value of any of these GetField calls IsOk, that value
is returned.  Otherwise, (GetValue S F) is called, and its value iq returned.
[There is a possible optimization which could Be made to thatmapping --
it could stop at any prototype which ipεABA5K[EKHA←LALu≠CW∃g'K]MK
←d8@@~∃QQSfA∃qaY←%ifAi!JAMC
hAiQ¬hAiQ∃eJAo%YPA]∃mKdA	JABAQsaSG¬Y)QS9Nu)←¬II-C1kBAm¬YkJX4∃[kG AYKgLABA)=βII-¬YkK∨→)saS
CY)Q%]NAgUEk]SPXAKm∃\AiQ=kOPAQsaSG¬Y)QS9NASf4∃S]G1kIKH↓←\AC9rAgY=hOfA=eIKe∃I!e←Q←isa∃f\@AQQSfA%[ae←YK[K]P←QCG,AQCf↓≥∨(A	KK\@4∃CII∃HAsKPAi↑A⊃KMCk1i
SK1I)←π=[aki∀XAEK
CkgJ↓←LAi!JACe	SieCIS]KgLA←LAQQJ@~)←eIKHA←LAQQJA*i∨eIKIKI!e=i←isAKfAK1K[K]Qf\@A%JAiQ∀AMCGPAiQCPA←]J↓kaoCIH~∃EIC]GP↓QCfAQKe[S9CiKH↓I←Kf↓≥∨(A%[aYr↓iQJA=iQKeLAQCm∀\@A)!SfAo=kYHA=]YrA5Kgf~)s←jAU`ASL↓iQKe∀AoKe∀A[←e∀AiQC8A←]J↓mCYk∀A←\ALu≠CW∃g'K]MK
←d0AC]H↓g←[J↓GYCgL~∃IKMGK]I∃HAMe=ZAE←QPA←L↓iQKg∀@ZZA	←iPA=LAoQ%GPACIJAeCIJA←G
keC]
KfXA	khA∩4∃giS1XAIS⊃\OhA]C]hAQ↑AGQ¬]GJA%h\\]t~∀~∃QQJAGUeeK]PAIKM¬kYhA⊃KMCk1iπCG!K
SK1HAMk9GiS←8ASfAAeKiidAgS[AYJtA%hAMSIgh~∃MKKfA%LAiQ∀AmCYUJA←L↓*u&A%fABAMkEk]%hXAC9HASL↓g↑XAUα[!+Q!%∨!LAiQJ↓]KnAYCYkJ4∃←\AQQJA↓gY←h↓←LAi!SfAgUEk]SP\@A∨QQKeo%gJXA%LAiQ∃eJASLA]↑AMkGPA→k]Gi%←\XAQQSf~)GCGQ%]NAMU]GiS=\AI←∃fA]←QQS]N8~∃7∨_AG←kIgJA[=eJAK1CE←e¬iJAMU]GiS=]fACIJAa←MgSEY∀tAM←HAKqC5aYJX↓s←jA5CrAo¬]h~∃Q↑ACGQkCXA
eKCi∀ABA]∃nAgk	k]Sh↓ChAi!SfAa=S]hX↓←dAo!CiKm∃d\~∃MKJAi!JAMk9GiS←8A
≥K]
SKY⊃+]Sh↓M←dAA←ggS	YJAS9gSOQQfAS]Q↑AiQ¬hAGe∃CiS←8Aae←
Kgf]t~∀~∃⊃KMCk1hAMk9GiS←9fAM←HA!ki→SKYHQC]H↓[CsE∀AβII→SKYH↓C]HA⊃KYKi∃
SKY⊂RACe∀A]←n4∃EKS9NAGQ∃GWKH8@A)Q∃eJACIJAgi%YXAB↓MKnAM[CYX↓Sggk∃fAoQ%GPA∩↓QCmJ↓i↑Ae∃g←Ym∀t~∃Y%WJAQ=nAi↑↓IKGS⊃JAoQ∃\Ai↑↓GeKCQJABA9KnAgUD[k]%hXAo!ChACIJACG
KaiK⊂@EoQdD~∃a¬eC[KQKefX↓KiF\4∀~∀Z4ZA!e=EYK[L@ZZZ4∃/KY0XAiQ¬hOfAQQJAO=←HA]∃of\A9←nAM=dAg←5JA←L↓iQJAAe←EY∃[f\@↓!KeQ¬af~∃e←jOm∀Ag←[∀AS]g%OQif↓oQSG AoSY0AQKY@Ag←YYJAiQ∃Z\\\4∀~∃
%eghX↓oQCh↓iQJA!KYXA¬eJA'UE+]SQfAC]eoCr}A/QCPAgY←QfAI↑↓iQKr↓CYY←\}~∃∩↓KCeY%KdAI∃GYCe∃HAiQ∃ZAi↑↓EJAS9iK]g%←]CX↓←EUK
if@Z4AGeK¬iKHAQ↑AMS1XAiQ∀~∃e←1JA←L↓gaKG%IsS]≤AiQJ↓mCYk∀A←LA∧AgY←PAS\A∧AaCeQSGkY¬dAk]%h\~∃MQ←kY⊂AiQKdAEJA¬YY←o∃HAi↑↓gCem∀A←iQ∃dAMk9GiS←9fACf↓oKYX|~∀4T∪πO'≡33E∧+π∂!π≠WWvKQβ3}{'Mβ
β3/Qεc'/∃ε	βO3␈!↓55εK∃β≠Ns∪';8h*∨↔$3'↔3"BUαM∧1% "∞⎇ε.r
TεO~∀εn.\,W∩ε|d¬≠T\≥6/≥<]g≡,m}"bε\∨∩ε.l@π/α↑f∂.L≡FNvqQ$>/Jl⊗g.U
2∧2∀¬Rjε≤Tε∞w∀∞6f␈D∞vFN=∧ε≡∞d&*ε⎇dε
π]m↔"π,↑π⊗/<Yg&Nlpε
π=Mw"ε<≥`hR∞?⊗w&≤>FN≡≥MGJJ,Rε
m⊗.fEDε∂π≡&.wMO∩rα

G/~
zFF/.5`hPβ"Tmt∩(→\z9→$∞≠h≠,≥y(→,≤zλ≤n\];Z.D_;H]→;9-nλ≠yD∞~→(=_<td
yH_-Mλ≤{
}≤nc!%≥~~.4≥x<d
Y8y.>x<↑$∞z→;D≠z;Lt≥~→$∞≡<→$z→8m=;Yk∧∞≠h→\z9→$
9H≥
+λ≤l∨+β"J,;Yy*O<→(∞=≠⎇λ∞|<h→\Z;Y,D→[|D∞~→(
<Y[n-9<\i|U≡<
≤x;∪l-~9x.M{H≤n\];Z.E
#"L≥Yλ→\{_<L\λ≥~≡λ_;O∀≤{≠nD_x;DY(_$Z9;EC"J
M_=λ∞|<h≤m≥<≠→.$→Z9n↑Z;Yd
⎇=λ∞M→(≤l↑λ≠yD;≠λ∞
||z,-→(≤mM⎇≤h∞⎇~8z∧
:9z∞A"Y=L↑H_<∞8<H
⎇H_;O∀≥;Z.D≥z~,=λ≤Y.∞Y<y-n≤h_-o(≤{
}λ+$
9(≥
(∃;M≥{H≠ld_;≠∧↓"S>*<;\z,-→4{
}≤h≠nl<H_-Mλ≤≠n>z8[T≤{≠nNh⊗{n%λ→<.]=X;]]≠≡%D≠⎇Y.$_;≠↓Q]≡<
≤x;⊗∧}kλ≥m<Y(∧~<h∀≤⎇8L=_<|d
yH≤mM⎇≤kKU#"R.D≤y9-↑h~;L]→9x-nλ≠[nD~_=M≥Yh_-d→>≤
M8z=∧
~<⎇∧
yH≥
<y(m9;→∞5λ_].DKKAQC"U

<h≠\9≤h∞Mh≥~T≠Y>∞D≤≤[l-→;(¬U(_<d∞~→(∞<;9(∞M~;Ydx;H,(→:.M→<C!,(≤{
}λ_;LD_(→M≤;→∧
=λ≤m
⎇;→∧
_=Y$¬~;<
M8z=
O(_=∧
→8<nE(_(∞:<H
|H∪~.>⊃[In5C"VhL<x|M≥:;X.M;Yh,=≥y,]H≥~T_x<l↑h_x-d_;≠-}⎇λ_LT→≠{LT≤z;.
≡(_O∀→>_-];Z;Lq"]~T≠];,,<H≠ld_<Yn]9;]∞4~=λ
<h_L\;H→m≡Y;KD∧∃;YM}]≥;L≡→;≡%A"]~T_x<lT≠yH∞N{h_.,⎇;9-n≤h~.4∀u∩)Iλ_;,-9⎇;n↑h+$
{[≡$∞Y<{mNY9β!.z→;D∞~_=∧ε[Yλ≡Y⎇;,]]λ~.4→=X-N8=→,GC"P.,h.Dπ≤{≠nGH_(
]Z=α'LZ9;GH_(
]Z=β!(<Yhε'H∂≤mM⎇∂H
}~→<N1/→Z,]→∂H∀∀{≠nA"P<LtnHπN{≠⎇πd≥;Y\Z;Y,A/→Z,]→∂H
}~→<N1"K+%U+++!QC"K%U(≠⎇
<H≥

;Y|d¬++#!*≤y=,Mr;]L↑\y(
<h_m⎇9(~-n≠h→/
<⎇→-ly+λ≡h≤≤M⎇:<y,EC"C!*~→(λL9X=-N⊂9]↑T≥=
l;≥9$];XnM;{H
<h_L\;H→n,8=≠∂∀≤z;.
~9Z,\λ(∞⎇=~β!-;|Y$
yH≥
(≥{n-h≠[nt→~<nNZ8].L9λ≥
t≥~→$∞{≠⎇∞4≥~→-↑y;≥L↑kC"AQU→<M];X=
≥Yh_$∞y<|m≥{H≥m≥≠λ_LT→X<nL<H≠M}h+$	p\h≡Y(≠mm≡(≤m⎇9=~-\<c"LL+=Z..≥8;¬↑{≠⎇∞L9∞H
⎇[≡(∞⎇→;H∞M→>(
=Y(∞Mh_Y${{<∞,<|y,EHλ∃

<h~.1"[[nt→≠{LT_=λ=≠|z-lh≥~-\+λ≤L≡~→<D∞~_;D∞z→;D
|→;L\C"K8⊂S	n4≠_:,E8X8m4≤~~-M|{|
∂+λ∩$∞Y8;
∨Y(≠M}kλ≥l≡h≥≠d
→=λ
M⎇≤h
|H≥~
≥Y|h∞=~<β!.~≤]$∞~→(>X8zn4→≥<M≥Yh_$∞y<|m≥{KH∧	=λ≥l≡kλ≥
<Y9M}Y+λ↑|y;NM8;λ∞M_=λ∞M→<y!Q[~=∞M→(≤∞-x[→-↑h_Y$∞Y;;nl9λ≥m≡~λ≤m⎇9(≤L\⎇;_.-=≡(¬U(~→-ly(≥
#"\L\⎇;_.$∀Y;-}Y5Z..≥8;
=≠⎇≤dx;≠∞5Hλ∀IIλ~<d
[⎇h
↑8zλ=→8;L↑H+$;Yλ∞⎇→<Y,≡c"]
<Y(
≡h≤⎇
≥≠λ≤m⎇9(≤mM|λ
]|⎇λ∞m<]≥,≥λ≤{
}≤h_.,(≥<∧∞≠h→≡→.h≥Yλ→↑y<]LQ"]≠d∞⎇_>$<[⎇-lHλ
=h≠[nt_(∩h$≥z;
D_Y(∧-≠yz,<;≠≡$$_{p⊗\92yyYr⊂7w≠<P;t→w⊂4jλ4yPεB12tw→P⊃84≡ytqp[68Q⊂_wvx0Xz2r.]

Various small things hav@∀AEKK8ACII∃HAi↑↓iQJAa+)β_(AMSY∃b@JZ↓]←iQ%]NAC1X∩∃i!ChAS9iKeKMiS]N0AEkh↓]KGKMgCer↓oQK\↓∩AM←U]HAi!ChA	¬mJAQ¬HASO9←eKH4∃[rA
QC]O∃fAoQ∃\A[C-S]NA!SfXA→←eGS9NA[J↓i↑Ae∃I↑A[dAkaI¬iKf\8\~∀~(ZZZZ4∃≠←e∀AYCi∃d@ZZ↓oQK\↓∩OmJ↓g←[J↓eKCX↓eKgk1ifAi<AC]]=k]GJ8~∀~∃!←aJA¬YXASLAoKY0AoSi As←J8@A∩OYJAEKng little but hacking the last
few days -- mostly for Rand, some for you at ISI, and the rest on general
improvements to RLL, further solidifying it.

Russ
∂TO SKLEIN (CC MANN) 15:48 12-Oct
Ta-daaa!

Finally that needed day!
I think RLL is ready for your perusal.  Still no guarantees, of course,
but there's now a version which seems to work over all of the examples I
threw at it.

Proposal:
One of the next messages is a long (about 1000 lines) dribble file, showing
the sort of stuff you asked for.  After looking through that, please
send me a message, telling me the sorts of other things you'd like to see.
These would then be demonstrated (or added...) -- either real time, with
you TALK linked to me, or in the form of a (perhaped cosmetically edited)
dribble file.

At that point you could send over your delta files, to be incorporated
into the basic [Rand-Ai] files.  These could then be FTPed to [ISIB].

Statement of Philosophy wrt FIELDs:
Everything dealing with FIELDs is stored in a seperate module -- so fields
are NOT integral in the basic RLL system.
(Actually this is what required most of the time -- making those changes
"undoable".)  Anyway, you will have to load in that FIELD kb when starting
a session.  (Of course this could be done automatically, once RLL learns
about SteveKlein...)

Caveats:
I figure now would be a good time to acquaint you with some of the other
fixes I've made to the RLL system over the last while, in case you get
bitten by any of them.  [Of course these should be totally transparent to you.]
A subsequent message, soon, will enumerate these.

Russ
∂TO SKLEIN 15:57 12-Oct
That dreaded Dribble File
-*-*- This is a compoSition of 3 dribble files, taken from sessions over
-*-*- the last two days, editped only tk remove irrelevant (and potentially
-*-*- embarassing) typing∞  My comments are prefaced by "-*-*-", as you might
-*-*- have guessed.

 ***  Am opening Dribble file: <GREINER.RLL>TRACE.OCT11.1 [11-Oct-81 17:29:01]
<GREINER.RLL>UTIL.COM.31

-*-*- Bunch of start up stuff, deleted out of courtesy to your eyes ---

10←START]
Am leaving the tracefile as NIL.

                   Welcome to RLL-1!
Reading in RLL now.
Opening knowledge base <GREINER.RLL>RLL.KB.19
Last read NIL
Last written 11-Oct-81 16:55:04
Copying from <GREINER.RLL>RLL.KB.19 to <GREINER.RLL>RLL.PAGE.1.


Last written by (GREINER  6-Oct-81 14:03:52)
Opening knowledge base <GREINER.RLL>LISPFNS.KB.18
Last read NIL
Last written 11-Oct-81 16:56:15
Copying from <GREINER.RLL>LISPFNS.KB.18 to <GREINER.RLL>LISPFNS.PAGE.1.


Last written by (GREINER 11-Oct-81 16:55:29)
Opening knowledge base <GREINER.RLL>SLOTS.KB.21
Last read NIL
Last written 11-Oct-81 16:53:48
Copying from <GREINER.RLL>SLOTS.KB.21 to <GREINER.RLL>SLOTS.PAGE.1.


Last written by (GREINER  6-Oct-81 14:00:59)
Opening knowledge base <GREINER.RLL>USERS.KB.18
Last read 11-Oct-81 13:44:57
Last written 11-Oct-81 16:54:21
Copying from <GREINER.RLL>USERS.KB.18 to <GREINER.RLL>USERS.PAGE.1.


Last written by (GREINER 11-Oct-81 16:54:04)
Openning the file RLL.
compiled on 11-Oct-81 17:06:35
FILE CREATED 11-Oct-81 17:06:16

-*-*- 8 ARRAY space GCs later -*-*-
-*-*- (I never figured out what in RLL requires all of this array space.) -*-*-

RLLCOMS
Loading in <GREINER.RLL>RLL.COM.10.
You are about to write on an external file.
Do you want to enter ReadOnly mode? no

-*-*- More GCs -*-*-

This kb, RLL is already connected to all of (USERS SLOTS LISPFNS RLL).
Do you wish to read in any Knowledge Bases? yes
Do you want to read in your usual (SPILD HEURS EURISKO)? no
Which Knowledge Bases do you want loaded in? 
   1 -- DEMO
   2 -- FIELD
   3 -- BIKE
   4 -- RATALE
   5 -- SPILD
   6 -- RESOL
   7 -- GENLINFO
   8 -- BIOLOGY
   9 -- SETS
   10 -- MATH
   11 -- NUMBER
   12 -- HEURS
   13 -- EURISKO
   14 -- OLD
Enter the numberq of the ones you wish to use: 1 "
Do you want these to be your usual KBs? no
Do you wish to use you standard openning options, (Y (N) NIL)? yes
Opening knowledge base <GREINER.RLL>DEMO.KB.4
Last read NIL
Last written 11-Oct-81 16:34:23
Am compressing DEMO.
Copying from <GREINER.RLL>DEMO.KB.4 to <GREINER.RLL>DEMO.PAGE.1.

collecting atom name characters
39, 551 free cells, 34 pages left

collecting arrays
715, 715 free cells, 33 pages left
αLast written by (GREINER  6-Oct-81 13:22:41)
Openning the file DEMO.
FILE CREATED 29-Sep-81 21:30:00
DEMOCGMS
Loading in DEMO.
This kb, DEMO is already connected to all of (DEMO USERS SLOTS LISPFNS RLL).
Opening knowledge base <GREINER.RLL>FIELD.KB.4
Last read NIL
Last written 11-Oct-81 16:35:15¬
Am coMpressing FIELD.
Copying from <GREINER.RLL>FIEHD.KB.4 to <GREINER.RLL>FIELD.PAGE.1.
Last written by (GREINER 11-Oct-81 16:35:03)
Openning the file FIELD.
compiled on 11-Oct-81 17:10:02
FILE CREATED 11-Oct-81 17:09:54

collecting arrays
697, 697 free cells, 33 pages left

collecting arrays
576, 576 free cells, 33 pages left

collecting arrays
187, 699 free cells, 32 pages left
FIELDCOMS
Loading in <GREINER.RLL>FIELD.COM.5.
This kb, FIELD is already connected to all of (FIELD DEMO USERS SLOTS LISPFNS 
RLL).
KBs loaded.
NIL
11←UF.NETWORKS
(<GREINER.RLL>FIELD.PAGE.1 <GREINER.RLL>DEMO.PAGE.1 <GREINER.RLL>USERS.PAGE.1 
  <GREINER.RLL>SLOTS.PAGE.1 <GREINER.RLL>LISPFNS.PAGE.1 <GREINER.RLL>RLL.PAGE.1)
12←SOS RUSS
Bye now.
(Just created the sysout <GREINER.RLL>RUSS.EXE.1)
It is now 11-Oct-81 17:34:54.
Closing DribbleFile <GREINER.RLL>TRACE.OCT11.1


-*-*-- HERE I ADDED ON THE NEXT DRIBBLEFILE -*-*-

 ***  Am opening Dribble file: <GREINER.RLL>TRACE.OCT12.1 [12-Oct-81 10:37:12]
Am leaving the tracefile as NIL.
The following KBs can now be opened: (<GREINER.RLL>FIELD.PAGE.1 
<GREINER.RLL>DEMO.PAGE.1 <GREINER.RLL>USERS.PAGE.1 <GREINER.RLL>SLOTS.PAGE.1 
<GREINER.RLL>LISPFNS.PAGE.1 <GREINER.RLL>RLL.PAGE.1)


Copied the network <GREINER.RLL>FIELD.PAGE.1 onto <CORE>FIELD.PAGE-RUSS.


Copied the network <GREINER.RLL>DEMO.PAGE.1 onto <CORE>DEMO.PAGE-RUSS.


Copied the network <GREINER.RLL>USERS.PAGE.1 onto <CORE>USERS.PAGE-RUSS.


Copied the network <GREINER.RLL>SLOTS.PAGE.1 onto <CORE>SLOTS.PAGE-RUSS.


Copied the network <GREINER.RLL>LISPFNS.PAGE.1 onto <CORE>LISPFNS.PAGE-RUSS.


Copied the network <GREINER.RLL>RLL.PAGE.1 onto <CORE>RLL.PAGE-RUSS.
NIL
-*-*- So, as you can tell, I've just started.  Note the KBs loaded include FIELD,
-*-*- which holds the sub unit stuff.  The DEMO kb houses the examples I'll work
-*-*- through.
13←RLL-LIST (DEMO]
(TypicalPoorPerson Momma IsaOfGeorge Possessions Daddy DEMO.STATUS Parents 
                   AnyPoorPerson PossessionsOfGeorge Frank Steve Moms Gender 
                   AnyPerson George TypicalPerson 
                   PossessionsOfTypicalPoorPerson)
14←DI(AnyPerson]
  AnyPerson  
         [[ TypicalPerson ]] 
           AnyPoorPerson   
                 [[ TypicalPoorPerson ]] 
                 ** George!** 
        The unit TypicalPoorPerson has already been shown
         ** Daddy ** 
         ** Momma ** 
         ** Steve ** 
         ** Frank ** 
    The unit TypicalPerson has already been shown
!DONE!
-*-*- I was using Possessions to make my point.  Here's what I've done: -*-*-
15←EU Possessions
edit
8*PPU
MyIsa   (AnySelfAwareUnit)
MyCreator       RussGreiner
MyTimeOfCreation        "29-Sep-81 21:56:06"
MyCreatedAs     (IExamples (AnyComplexSlot))
Isa     (AnyComplexSlot)
RangeType       (FListN IntegerType IntegerType)
MakesSenseFor   (TypicalPerson)
PseudoInverse   NoEntries
OrderedPrototypes       (TypicalComplexSlot TypicalComputableSlot TypicalSlot 
                                            TypicalUnitFn TypicalStorableFn 
                                            TypicalFunction TypicalProcess 
                                            TypicalConcreteThing TypicalThing)
AllIsas (AnyComplexSlot AnyComputableSlot AnySlot AnyUnitFunction AnyUnitListFn 
                        AnyStorableFn AnyFunction AnyProcess AnyConcreteThing 
                        Anything)
OrderForToInit  7
MyAllIsas       (AnySelfAwareUnit AnyUnit AnyConcreteThing Anything)
VerifyArgs      [LAMBDA (val)
                  (AND (NOT (IGREATERP (LENGTH val)
                                       2))
                       ([LAMBDA (xy)
                           (AN@ (Unitp xy)
                                (OR [MEMB (QUOPE AnyPeRson)
                                          (GetValua xy (QUOTE AllIsas)
                                                    (QUOTE (CAFESLOT FAST-CACHE 
                                                                   FAST-GET]
                                    (MEMB (QUOTE AnyPerson)
                                          (GetTalue xy (QUOTE MyAllIsas)
                                                    (QUOTE (@'¬
'→=(A
βM([πβ
⊃
@~(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A
βM([∂Q:~∀@@@@@@@@@@@@@@@@@@@@Q
β$@Q9)⊂Am¬X@bR$R~∀@@@@@@@@@@@@@@@@@A):~)-KeS→sYK5K]h@A7→β5¬	α@!k\Ag1hAmC0AgkD↓q`∪K
β7?∪N1$4)α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓"εt!αn⊗4*Je↓D~> 4AQ"αα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα¬	T,l$¬¬
,zHR¬6↑-⊗7Le⊃PRα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧πG≤X*!QHλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧¬⊃∩4jJλ≥X-E*#"D∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧
∃λ¬	~<⎇	≤Szh∞l9
*%⊃"Hλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λ
⊃JYPp
$Sdε (LAMBDA (valu)
                                  (SOH
Am##∨)∀@Q7→¬≠¬	αQqbR4∀@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q71β≠¬	∧@QpR4∀@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q
∪a Aq:4∀@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Aas:~∀@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q1β≠¬	∧@Qqr$~∀@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Qm→β≠¬⊃α@Qp$~∀@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q
%1 Aqt~∀@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@↓qs:~(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q
+≥
)∪∨≤Q→β≠		α@QAHR~∀@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q¬!!→2(AaHAYCYk:4∀@@@@@@@@@@@@@@@@@@A5←ISMt~∃
←I[Ch@↓
→SgQ≤~∃↔	+aICQKf@@@@@Am→β≠¬⊃α@QkQQSg+9ShAkQQSg'1←hA]∃nA[←⊃SLAo!rR~∀@@@@@@@@@@@@@@Qβ9λA(AQ:~∀Z(ZTZA9←iSG∀AShA%fABA¬]sπ←5aYKqMY←h@4AiQSLA[KC9fAiQ∀AmCe%←kfA¬GGKgMKfAi<AiQSLAk]SP~∀ZT4TZAo%YXAkMJA∂KQ
SKY⊂@Q]←PA∂KiYCYkJ$AGCY1f@ZZ↓SJAi!ejAgUEk]SQfAoQ∃\A]K
KggCIr\~∀4TZTZQ≥←i∀XAEr↓iQJA9Cike∀A←LA⊃KMCk1i
SK1I)←π=[aki∀XASL↓]↑Ai!KeJA¬eJA]<AeKY∃mC]h4∀ZTZ(ZAgk	k]SiLXA∂KQ-CYk∀AoSY0AEJA
CYYK⊂XA←\↓iQSf↓!←gg∃ggS←9fAk]%h\@A]JOYX↓gKJAQQSf~(ZTZT4AS\A⊃KiCS0AYCi∃d\~∀4TZTZ↓→KhOLAY←←,AChAQQChAU]Sht4∀rU`4∀Q≠s%gB@Q¬]s'K1MβoCIK+]SPRA≠s
eKCi=dA%kMg∂eK%]KdA5s)S[∃∨Mπe∃CiS←8@~∀DHr['K@Zpb@Hbtjlh`lDA5sπeK¬iKIβL@Q∪aC[aY∃f@LR↓∪gB@!β]sπ=[aYKa'Y←h$A%C]≥K)sa∀@P~∃→→Sgi8A∪]i∃OKe)eaJA∪9iKOKI)saJ$A≠CW∃g'K]MK
←dQ)sa%GCY!∃eg←\$A!gKUI←∪]YKegJ~∃≥←∃]ieS∃fA∨e⊃KeKIAe←i←QsaKfQ)sa%GCYπ=[aYKa'Y←h↓)saS
CYπ←5akiC	YK'Y=h@~∃QsaSG¬Y'Y←PA)sa%GCY+9Si
\↓)saS
CY'i=eCEY∃
\A)eaSGC1
k]GQS←\AQsaSG¬Y!e←
Kgf@4∃)sa%GCYπ=]GeKQK)QS9NA)sASGCYQQS]N$AβYY%gCf@!β]sπ=[aYKa'Y←h↓β]sπ=[aki¬EYK'1←h@~)β]s'1←hAβ9s+]SQ
k]GQS←\A¬]s+]%i→SgQ
\Aβ9s'i←ICEYK→\Aβ]e
k]GQS←\A¬]s!e=GKgf~∃β]eπ←]GIKiK)!S]NA¬]siQ%]NR@4ZR~∀dTb`A@~∀Qβ9sπ←[AYKq'1←hR~(b`UT~∃I%iiS]≤AiQJ↓k]Sh↓β]sπ=[aYKa'Y←h8~∃KI%h~∀bDU`~∀!≠s∪g∧@Qβ]e'KYM¬oCeKU]ShR↓≠sπe∃Ci←d↓%kgg≥eKS]∃dA≠sQS[K∨→πeKCQS←\@4∀D@p5βkNZ`b@bnhfdt`LDA≠s
eKCi∃Iβf@!∪'kE
YCgfLRA∪MB@Qβ9sπYCMg∨M∨	UKGiLR@~∃Q←iCYM←
Cd`A'kAKeπY¬gf@Q¬]sπ←5akiC	YK'Y=hRA)eaSGC1qC[AYJA)eaSGC1π←[a1Kq'Y=h@~∃U]SiaC[aY∃f@Q!=ggKgMS←]f↓-KeS→sβYXDA)sa%GCYπ=[aYKa'Y←h$R~∀bDTZfA@~∃)sASGCY
←[aY∃q'Y←P~∀bd)*~∃∃ISii%]NAi!JAk]%hA)sASGCY
←[aY∃q'Y←P\~∃K⊃Sh~∀DfU!!T~∃≠s%gB@@Qβ]sQsaSG¬YqC5aYJA¬]s'K1MβoCIK+]SPR~∃≠eπeKCQ←d@@@@@AIkgg∂IKS]KH~∃≠sQS[K∨→πeKCQS←\@@@@@@D@p5βkNZ`b@bnhh`tf@D~∃≠eπeKCQKIβf@@@@!∪)sa∃p@Qβ9sπ←[AYKq'1←hRR4∃∪gB@@@@!β]sπ=[aYKa'Y←h$~∃≠s9Ko!←MgSEY∃'Y←iL@@@@A≥←9ieSKL~∃)sASGCY∃qC[a1K∨L@@@@@Aβ]s
←[aY∃q'Y←P~∃	CQCisa∀@@@@@@@Q9←]≥∪1)saJ$~∃¬K→←eK!Ui-CYUJ@Aπ=[aYKa¬!,~)βGik¬Y!kiYCYkJAπ←[AYKqβ
ikCYA,~∃β
ikCY¬II-C1kJ@A
←[aY∃qβGiUCYβ,4∃βGiUCY	K1KiK-¬YkJ@@@@@↓π←[a1KqβGQkCY	X~∃βGQkCY'UEgi-¬YkJ@@@@@Aπ←[AYKqβ
ikCYM,~∀Z(ZTZAQo↑A]=iKft4∀ZTZ(Z@b\Eπ←[AYKpD↓aeKM%qKfAQQKgJ↓Mk]GQS←]f8~∀ZT4TZ@d the absense of ToPutValue, ToGetValue, etc.:  
-*-*- 	The DefaultxxxValue functions are sufficiently general that they
-*-*-	will call these complex beasts at the correct time, (I think).
-*-*- Anyway, back to Possessions (next time I chose an example with fewer letters)
 ***  Am re-opening Dribble file: <GREINER.RLL>TRACE.OCT12.1 [12-Oct-81 10:47:06]
14*ok
Nothing changed.
TypicalComplexSlot
15*ok
Nothing changed.
AnyComplexSlot
16*p
(AnyComplexSlot)
16*↑ f RangeType
18*p
... RangeType (FListN IntegerType IntegerType) MakesSenseFor (TypicalPerson) 
PseudoInverse NoEntries OrderedPrototypes (TypicalComplexSlot 
TypicalComputableSlot TypicalSlot TypicalUnitFn TypicalStorableFn 
TypicalFunction TypicalProcess TypicalConcreteThing TypicalThing) AllIsas (
AnyComplexSlot AnyComputableSlot AnySlot AnyUnitFunction AnyUnitListFn 
AnyStorableFn AnyFunction AnyProcess AnyConcreteThing Anything) OrderForToInit 7
 MyAllIsas (AnySelfAwareUnit AnyUnit AnyConcreteThing Anything) VerifyArgs (
LAMBDA & &) VerifyElement (LAMBDA & &) Format FListN --)
-*-*- Note this implies the value of any X:Possessions slot will be a pair of 
-*-*- integers.
18*ok
Nothing changed.
Possessions
17←EU AnyPerson
edit
19*f UnitE≠		; the ≠ character is really <esc>, by the way.
=UnitExamples
22*p
... UnitExamples (Daddy Momma Steve Frank TypicalPerson) SuperClass* (AnyPerson 
Anything))
22*ok
Nothing changed.
AnyPerson
18←EU Daddy
edit
23*p
(Isa (AnyPerson) MyIsa (AnySelfAwareUnit) MyCreator RussGreiner MyTimeOfCreation
 " 3-Oct-81 23:19:02" MyCreatedAs (ICopiedFrom &) Gender Male)
23*ok
Nothing changed.
Daddy
-*-*- Let's see:
19←(PutValue 'Daddy 'Possessions '(4 6 9]


   *****   
Unable to find (SAFESLOT):ToGetField. Perhaps (SAFESLOT) is not a unit?   ***** 
Break?  yes
Unable to find (SAFESLOT):ToGetField. Perhaps (SAFESLOT) is not a unit?
NIL

(ERROR broken)
-*-*- Oops - someone is passing the wrong arguments:
20:BT
ERROR
*PROG*LAM
Warning
GetAccessFn
GetField
DefaultFieldToComputeA0185
*PROG*LAM
MapUntilOk
DefaultFieldToCompute
DefaultGetField
GetField
ComplexVV
ComplexBPV
*PROG*LAM
DefaultPutValue
PutValue
**TOP**

21:ARGLIST(DefaultFieldToCompute]
(uN sL fLD oth)
22:BTFN DefaultFieldToCompute

   oth NIL
   fLD (SAFESLOT)
   sL Possessions
   *ARG1 Daddy
DefaultFieldToCompute
**TOP**

-*-*- BTFN is a macro which searches the stack for certain functions.
-*-*- I find it very useful.


-*-*- AND HERE IS THE THIRD DRIBBLE FILE -*-*-
-*-*- Explanation: the TIP went down, so I quickly (tried to)
-*-*- save everything I had.  Apparently I was successful...

 ***  Am opening Dribble file: <GREINER.RLL>TRACEA.OCT12.1 [12-Oct-81 11:08:45]
Am leaving the tracefile as NIL.
The following KBs can now be opened: (<GREINER.RLL>FIELD.PAGE.1 
<GREINER.RLL>DEMO.PAGE.1 <GREINER.RLL>USERS.PAGE.1 <GREINER.RLL>SLOTS.PAGE.1 
<GREINER.RLL>LISPFNS.PAGE.1 <GREINER.RLL>RLL.PAGE.1)
None of the KBs were touched last session.
Do you still want to go ahead and copy some? no
NIL
24:uNoUnitPuts
T
-*-*- This variable is reset when the WS is "dirtied" -- when some unit
-*-*- is put of an external file.

-*-*- Anyway, on with the debugging:
27:BTFN GetField

   *ARG4 (-COMPUTE-FIELD -CreateSubUnit)
   *ARG3 (SAFESLOT)
   *ARG2 Possessions
   *ARG1 TypicalPerson
GetField

   *ARG4 (SAFESLOT)
   *ARG3 VerifyAll
   *ARG2 Possessions
   *ARG1 Daddy
GetField
**TOP**

28:REEVAL DefaultToComputeField T
I couldn't find any function named DefaultToComputeField.
29:REEVAL DefaultFieldToCompute T

(DefaultFieldToCompute broken)
30:?=
uN = Daddy
sL = Possessions
fLD = (SAFESLOT)
oth = NIL
31:BT
DefaultFieldToCompute
*ENV*
DefaultGetField
GetField
ComplexVV
ComplexBPV
*PROG*LAM
DefaultPutValue
PutValue
**TOP**

32:BTFN DefaultGetField

   *ARG4 (SAFESLOT)
   *ARG3 VerifyAll
   *ARG2 Possessions
   *ARG1 Daddy
DefaultGetField
**TOP**

33:REEVAL DefaultGetField T

(DefaultGetField broken)
-*-*- This must be the offending function, as its args are correct,
-*-*- but those to DtfFldTC were wrong
34:UB
(DefaultGetField)
35:!EDIT
Editting the function: DefaultGetField
loading from <GREINER.RLL>FIELD..7
prop 
edit
-*-*- Yes, that is another MACRO.
24*p
(LAMBDA (uNIT sLOT fIELD oTHER44)   **COMMENT**   (DECLARE & &) (CheckOther 
oTHER44 FIELD-OTHER) (PROG & & &))
24*-1 2 p
((PrimValue &) NewValue hold)
25*pp
((PrimValue (UA-GETPROP uNIT sLOT))
 NewValue hold)
25*INIT

collecting lists
12865, 12865 free cells, 29 pages left
Initialized (PrimValue NewValue hold)
26*e PrimValue
NIL
26*e uNIT
Daddy
26*e sLOT
Possessions
26*p
((PrimValue &) NewValue hold)
 ***  Am re-opening Dribble file: <GREINER.RLL>TRACEA.OCT12.1 [
12-Oct-81 11:12:57]
26*nx p
(DECLARE (LOCALVARS PrimValue NewValue hold))
27*nx p
(RETURN (AND & & & &))
28*2 p
(AND (OR & &) (OR & &) (OR & &) (COND & & &))
29*2 pp
(OR (InOther (QUOTE SAFEUNIT)
             oTHER44 NIL uNIT)
    (Unitp uNIT))
29*nx nx p
(OR (InOther & oTHER44 uNIT sLOT) (Fieldp fIELD))
31*nx p
(COND (& &) (& NIL) (T & & NewValue))
32*2 1 p
(AND (FormattedValuep PrimValue) (EQ & &))
33*eval
NIL
34*!nx 1 p
(OR (InOther & oTHER44 uNIT sLOT) (InOther & oTHER44 uNIT sLOT))
36*pp
(OR (InOther (QUOTE -COMPUTE)
             oTHER44 uNIT sLOT)
    (InOther (QUOTE -COMPUTE-FIELD)
             oTHER44 uNIT sLOT))
36*e oTHER44
(SAFESLOT)
36*eval
NIL
37*0 p
((OR & &) NIL)
38*nx p
(T (SETQ NewValue &) (OR & & &) NewValue)
39*2 p
(SETQ NewValue (APPLY* & uNIT sLOT &))
40*pp
(SETQ NewValue (APPLY* (OR (GetValue fIELD (QUOTE ToComputeField)
                                     (AddOnCharacter (GetSlotCharacter oTHER44)
                                                     (QUOTE SAFESLOT)
                                                     NIL))
                           (Warning "Trouble - unable to find " fIELD ":"
                                    (QUOTE ToComputeField)
                                    " - in "
                                    (QUOTE DefaultActualGetField)
                                    "."))
                       uNIT sLOT (AddOnCharacter oTHER44 (QUOTE SAFESLOT)
                                                 NIL)))
40*-1 2 p
(OR (GetValue fIELD & &) (Warning "Trouble - unable to find " fIELD ":" & " - in "
 & "."))
40*eval
DefaultFieldToCompute
41*!EF
Editting the function DefaultFieldToCompute
Unbreak DefaultFieldToCompute? no
loading from <GREINER.RLL>FIELD..7
DefaultFieldToCompute unbroken.
prop 
edit
42*p
(LAMBDA (uN sL fLD oth)   **COMMENT**   (DECLARE & &)   **COMMENT**   (OR & &))
-*-*- I have some advice on EDITF, which asked above if it should first unbreak
-*-*- the function.  Turns out it doesn't work: BREAK(fn)
-*-*- will NOT actually break the function is fn is being edited -- and no
-*-*- one seems to know how BREAK decides the function is being editted.
-*-*- Anyway, that same advice will be useful at the end of this edit, when
-*-*- it will ask to rebreak this function.
 ***  Am re-opening Dribble file: <GREINER.RLL>TRACEA.OCT12.1 [
12-Oct-81 11:16:34]
-*-*- One more check, just to make sure everything opened ok:
42*e (MAPCAR UF.NETWORKS 'HASHFILEP]
(#171115 #171123 #171131 #171137 #171145 #171153)
-*-*-  Popping back up:
42*p
(LAMBDA (uN sL fLD oth)   **COMMENT**   (DECLARE & &)   **COMMENT**   (OR & &))
42*-1 p
(OR (MapUntilOk & &) (GetValue sL fLD oth))
43*2 p
(MapUntilOk (IsOk &) (FUNCTION &))
43*pp
[MapUntilOk (IsOk (GetValue uN (QUOTE OrderedPrototypes)
                            (AddOnCharacter (GetSlotCharacter oth)
                                            (QUOTE (SAFESLOT FAST-CACHE))
                                            T)))
            (FUNCTION (LAMBDA (x)
                (DECLARE (LOCALVARS x)
                         (SPECVARS sL fLD oth))
                (GetField x sL fLD (AddOnCharacter oth (QUOTE (-CreateSubUnit
                                                                -COMPUTE-FIELD))
                                                   T]
43*↑ 4 p
(DECLARE (LOCALVARS uN) (SPECVARS oth fLD sL))
-*-*- Damn, this looks legit!
45*f GetField
46*?=
uNIT = x
sLOT = sL
fLD = fLD
other35 = (AddOnCharacter oth (QUOTE (-CreateSubUnit -COMPUTE-FIELD)) T)
47*redo F

GetField  ?
48*ok
not changed, so not unsaved
Rebreak DefaultFieldToCompute? yes
DefaultFieldToCompute
49*p
(OR (GetValue fIELD & &) (Warning "Trouble - unable to find " fIELD ":" & " - in "
 & "."))
49*nx p
uNIT
50*0 p
(APPLY* (OR & &) uNIT sLOT (AddOnCharacter oTHER44 & NIL))
-*-*- Aha - I decided NOT to pass the field-name here - just the way
-*-*- S:ToCompute takes only 2 arguments...
51*NAME
DefaultGetField
51*ok
not changed, so not unsaved
45:EU TypicalSlot
edit
52*f ToComputeField
53*p
... ToComputeField (*Do* FExecute &) SuperTypEx* (TypicalThing 
TypicalConcreteThing TypicalProcess TypicalFunction TypicalStorableFn 
TypicalUnitFn TypicalSlot) AllIsas (AnySlot AnyUnitFunction AnyUnitListFn 
AnyStorableFn AnyFunction AnyProcess AnyConcreteThing Anything) MyAllIsas (
AnyTypicalExample AnyIntensionalObject AnyAbstractThing AnySelfAwareUnit AnyUnit
 AnyConcreteThing Anything) OrderedPrototypes (TypicalSlot TypicalUnitFn 
TypicalStorableFn TypicalFunction TypicalProcess TypicalConcreteThing 
TypicalThing) ToAddField DefaultAddField ToDeleteField DefaultDeleteField 
ToSubstField DefaultSubstField)
53*2 p
(*Do* FExecute (LAMBDA & &))
 ***  Am re-opening Dribble file: <GREINER.RLL>TRACEA.OCT12.1 [
12-Oct-81 11:19:30]
54*pp
[*Do* FExecute (LAMBDA (un sl ot)
        `(LAMBDA (unt sl oth)
          (DefaultFieldToCompute unt sl (QUOTE ,un)
                                 oth]
-*-*- This is ok.  The fault must lie with VerifyAll itself.
54*ok
Nothing changed.
TypicalSlot
46:EU VerifyAll
You are about to write on an external file.
So far, this core image has been used by (GREINER).
Do you want to enter ReadOnly mode? no

collecting lists
17303, 17303 free cells, 29 pages left
edit
55*e uNoUnitPuts
NIL
-*-*- ↑ that's the variable used to decide whether the WS is pure.
55*f ToCom≠
=ToCompute
56*redo F
=ToComputeField
57*p
... ToComputeField DefaultFieldToCompute OrderedPrototypes (
TypicalComputableSlot TypicalSlot TypicalUnitFn TypicalStorableFn 
TypicalFunction TypicalProcess TypicalConcreteThing TypicalThing) AllIsas (
AnyComputableSlot AnySlot AnyUnitFunction AnyUnaryFunction AnyUnitListFn 
AnyStorableFn AnyFunction AnyProcess AnyConcreteThing Anything))
57*:
:
-*-*- This will be inherited henceforth.
59*SP
Verifying slots
Using UA-PUTPROP, not full PutValue
VerifyAll
48:?=
uNIT = Daddy
sLOT = Possessions
fIELD = VerifyAll
oTHER44 = (SAFESLOT)
49:eval

   (DefaultFieldToCompute broken)
50:?=
uN = Daddy
sL = Possessions
fLD = VerifyAll
oth = (SAFESLOT)
-*-*- Ah, now it looks right.
51:UB
(DefaultFieldToCompute)
52:eval
   DefaultFieldToCompute evaluated
53:value
[LAMBDA (un sl val sub xtr modif)
        (AND [AND (NOT (IGREATERP (LENGTH val)
                                  2))
                  (FIXP (CAR (NTH val 1)))
                  (FIXP (CAR (NTH val 2]
             modif]
-*-*- Ok - so it wants two values, both integers - as desired.
54:ok
DefaultFieldToCompute
DefaultGetField evaluated
54:value
[LAMBDA (un sl val sub xtr modif)
        (AND [AND (NOT (IGREATERP (LENGTH val)
                                  2))
                  (FIXP (CAR (NTH val 1)))
                  (FIXP (CAR (NTH val 2]
             modif]
55:UB
((DefaultGetField NOT BROKEN))
56:ok
DefaultGetField
NIL
-*-*- So it did NOT allow that PutValue of 3 values, as we wanted.
 ***  Am re-opening Dribble file: <GREINER.RLL>TRACEA.OCT12.1 [
12-Oct-81 11:23:15]
56←EU Daddy
edit
60*PPU
Isa     (AnyPerson)
MyIsa   (AnySelfAwareUnit)
MyCreator       RussGreiner
MyTimeOfCreation        " 3-Oct-81 23:19:02"
MyCreatedAs     (ICopiedFrom (Momma))
Gender  Male
AllIsas (AnyPerson Anything)
OrderedPrototypes       (TypicalPerson TypicalThing)
61*; Yep - no value for Possessions.  Let's nw give him something.
61*OK
Nothing changed.
Daddy
57←(PutValue 'Daddy 'Possessions '(3 32]


-*-*- There was a minor bug here, fixed...
68:REEVAL DefaultFieldToCompute T

(DefaultFieldToCompute broken)
69:?=
uN = Daddy
sL = Possessions
fLD = Format
oth = (SAFESLOT SAFEFIELD -CreateSubUnit)
70:eval
DefaultFieldToCompute evaluated
71:value
FListN
-*-*- Ok - bug fixed.
72:UB
(DefaultFieldToCompute)
73:ok
DefaultFieldToCompute
(3 32)
-*-*- Now Daddy has some values
73←EU
=Daddy
edit
74*-2 up p
... Possessions (3 32))
-*-*- What did I tell you?
76*ok
Nothing changed.
Daddy
-*-*- All of this would have worked sans sub-units.  Onward and downward:
74←EU AnyPoorPerson
edit
 ***  Am re-opening Dribble file: <GREINER.RLL>TRACEA.OCT12.1 [
12-Oct-81 11:33:04]
77*PPU
MyIsa   (AnySelfAwareUnit)
MyCreator       RussGreiner
MyTimeOfCreation        "29-Sep-81 21:46:27"
MyCreatedAs     (ISubClass (AnyPerson))
Isa     (AnyClassOfObjects)
TotalSoFar      0
SuperClass      (AnyPerson)
UnitExamples    (George TypicalPoorPerson)
TypicalExample  TypicalPoorPerson
SuperClass*     (AnyPoorPerson AnyPerson Anything)
-*-*- So George is Poor
78*-3 EU
Editting the unit TypicalPoorPerson.
edit
80*p
(Isa (AnyPoorPerson) TypicalExampleOf AnyPoorPerson MyIsa (AnyTypicalExample 
AnySelfAwareUnit) MyCreator RussGreiner MyTimeOfCreation "29-Sep-81 22:07:37" 
MyCreatedAs (CopiedFrom &) Possessions (*Do* FSeeUnit 
PossessionsOfTypicalPoorPerson) AllIsas (AnyPoorPerson AnyPerson Anything) 
SuperTypEx* (TypicalThing TypicalPerson TypicalPoorPerson) OrderedPrototypes (
TypicalPoorPerson TypicalPerson TypicalThing))
80*f Poss≠
=Possessions
81*2 p
(*Do* FSeeUnit PossessionsOfTypicalPoorPerson)
-*-*- Aha - a subunit!
82*3 EU
Editting the unit PossessionsOfTypicalPoorPerson.
edit
83*p
(RangeType (FSet IntegerType) MyIsa (AnySelfAwareUnit) MyCreator RussGreiner 
MyTimeOfCreation "30-Sep-81 16:07:59" MyCreatedAs (IExamples &) Isa (AnySubUnit)
 MyLivesInLocation (TypicalPoorPerson Possessions) MyAllIsas (AnySelfAwareUnit 
AnyUnit AnyConcreteThing Anything) Datatype (IntegerType) Format FSet --)
83*; Note the RangeType here is different - permitting a set of Integers.
83*PPU
RangeType       (FSet IntegerType)
MyIsa   (AnySelfAwareUnit)
MyCreator       RussGreiner
MyTimeOfCreation        "30-Sep-81 16:07:59"
MyCreatedAs     (IExamples (AnyUnitForSlot AnySlot))
Isa     (AnySubUnit)
MyLivesInLocation       (TypicalPoorPerson Possessions)
MyAllIsas       (AnySelfAwareUnit AnyUnit AnyConcreteThing Anything)
Datatype        (IntegerType)
Format  FSet
AllIsas (AnySubUnit AnyIntensionalObject AnyAbstractThing Anything)
87*SP
Verifying slots
Using UA-PUTPROP, not full PutValue
PossessionsOfTypicalPoorPerson
88*ok
Nothing changed.
TypicalPoorPerson
89*ok
Nothing changed.
AnyPoorPerson
75←EU George
edit
90*p
(MyIsa (AnySelfAwareUnit) MyCreator RussGreiner MyTimeOfCreation 
"29-Sep-81 22:25:05" MyCreatedAs (IExamples &) Isa (*Do* FSeeUnit IsaOfGeorge) 
OrderedPrototypes (TypicalPoorPerson TypicalPerson TyPicalThing) Possessions (
*Do* FSeeUnit PossessionsOfGeorge))
90*-1 -1 p
PkssessionsOfGeorge
91*EU
Editting the unit PossessionsOfGeorge.
edit
92*p
(MyIsa (AnySelfAwareUnit) MyCreator RussGreiner MyTimeOfCreation 
"11-Oct-81 1∃:47:39" MyCreatedAs (IExamples &) Isa (AnySubUnit) 
OrderedPrototypes (TypicalSubUnit TyPicalAbstractThing TypicalThing) 
MyLivesInLocation (George Pkssessions) *vaLue* RecomputeMe AllIsas (AnySubUnit 
AnyIntensionalObject AnyAbstractThing Anything) MyAllIsas (AnySelfAwareUnit 
AnyUnit AnyConcreteThing Anything) --)
92*w
... Datatype NoEntries)
93*ok
Nothing changed.
PossessignsOfGeorge
94*ok
Nothingchanged.
George
 ***  Am re-opening Dribble file: <GREINER.RLL>TRACEA.OCT12.1 [
12-Oct-81 11:35:31]
-*-*- So George had a Possessions subunit already. Let's Kill that.
-*-*- (This was created when I was monkeying around testing out this
-*-*- field stuff.)

-*-*- This may not work -- I've never tested this KillSubUnit @MikML8~∀nm⎇↔SYYU]ShQA←ggKMgS@?w~?~∨.{@⊗>[QPPh%P
EUK(⊂-m⎇~→.$≠:;M}H_],wH→Sn]YλM>→9∧;Y]~;:-l=→9↓QK*K%%(
⊂L≡z8h=_;YlWH∪~.l<r;K⊗λ∂'d∪>3
≡Y<r-k⊗⊗E⊃"MmgλUβ"HZTStAQJT∀IxjS⊂)Q"Ux.-Z;YaQQy=λ≤xy4n8[C"H|=∃X-N9#"HL9→=Z⎇8U-m=β"I=9≠∃-m=β"E%U∪t¬%C"C!%*K"ET∪[uT~=λM9λ→M≥Yλ⊃]→=→*>8U;M≡λ→]-l⎇~;meC"MgπQ5(
O<~0l≥∀⎇8J]Z=β!,9~=↓QL-*Ld∪>5
yz;≠β1"O3/~≠rz-M⊃9#!'-JLD∞β"Q]→=→*>8U;M≡β"K%%*K(
M→<Y$
=λ∩.5C"N&uSrc!)[⎇~
≥Yh_m9Yy,EA"U∂≡~8x-J⎇8U-m=β"Fw.TQ(ZP3λλL;→5Z⎇8U-m=λ∃↓QA"JλL;→=Z⎇8U-m=λ⊂⊃≤7urg
FE≤_∞*aεE
 2v"]2izq∃w4z∀CE_⊂]λbb$jβE"r4]:4w3H:42P→8w1z~ww≥⊂⊃2v2z→izq*[4zεE≠7pr4[3P39≠vP≡#T"dg"T↔)&&∂#$bf⊃↔↔≠FBεE⊗EU⊗P"Y4z9P≠vvtj≥2r⊂⊗J⊗U⊗FB→≠U7ZFE:g≤p{2bβE≤→≥βE∀"2[2z2i]q*w4]⊂197Zrw∀FB≤→≥∨OFE:g∩z⊂≡P∀7yyr\ytww≤gs#r[y3rFB≤→]2]0vεEβEεE⊂λ⊂∃∃∃
∃⊂⊂⊂∩w⊂)r])ac7\6ry≥∃7awv\:z2Wλ⊂⊂∃∃
∃∃⊂εB!92pZ←P⊂<YyFE$[⊂)rj∀ac7y≠py≥*≠awvx≥z2WεB'$fεBεE∀"T)'i⊂_97ur[∀FE⊗J⊗U⊗P⊂P92v[0vz⊂→97vP≤wvrP→py64Yy⊂⊃3~|⊃↔⊂λ&2z∪\P9rrH;t0zλ4z⊂;XyV⊂9Z0v6⊂≥r←FE∞~]"jPεE"r~z:4w→P:42H:w4z⊂)rz∀ac7y≠ry↔εBεE1w[62qz~w3P6~yz9FB_Z[XV⊂_ZMX→P3≤2rP1Yv69Vλ→≤P8_sryP≠2s:εB2r4zβE⊗U⊗J⊗P*4→P"jaλ4yP⊃≥4rr⊂~w⊃⊂;Zz4⊂:~2P+p\74w3H3:w1]4ww⊗λ;t4qZ⊂3p{→P:42H6ryyXsrFEU⊗U⊗H0q7{→W⊂⊂)[P4yP≥42P(≠yw⊂:\ry6pXy7]εB→_∃(≠ywεE∩w⊂9v≠z⊗⊂*≠awvx≥z2FE
+py7~w3P⊃∩w⊂⊃⊂
(jgj⊃P)rz∀ac7y≠ry∀Pλ≥⊃⊂∀∀jgj"H*7aw[x:z2JP⊃↔⊃
FE⊗UU⊗P$QP:44\P4yP≥42P8≠0qrP≥t4qtλ9x4zλ7zz⊂≥40z≠ryypYrP0P→2{P&~w2yP→py64Yy↔εEU⊗U⊗H!2v7]P4yP≠2s:⊂~w⊗⊂4[⊂1pyYP<wzH;pw:λ:7P8→y:yrH;t0zλ7w2P∀aP37\6ry⊂≠7wuyH64urKεE⊗UU⊗P$Y⊂77z⊂9ut\⊂:7Pλ⊗U⊗UP$"i⊃P⊗U⊗J⊗QεE≤U_⊂≤εA∀(∀'cP∀	⊂∪⊂∪
P∀""Pf i"H∪∀P∀∃py74[3P⊃$[⊂⊃⊂∪λ⊃≥⊃⊂	⊂⊃↔⊃
P∀)"U*i'⊂	∀TFEX∃⊗XH→⊂8εB∀)"aKai"`U"P#)H∀*7a[vx:z→P∪∀P
)0w3Yj<x2H∪∀P∀⊃7vpt[*<x2H27vTH∀"2yXy4x:~ww⊂∪
TFE→L∃→P→λ8εE∀⊂ aehUgj"hJ⊂∀& Sa" P	⊂∪⊂∪
TFE→L∃⊗XP≤εE∀&⊂fa" H∀9v7]64yzλ7z4⊂_y3yTH∀)bj∀P9v7]64yzλ∪∀P∀∀"aVaT"`j"H#)P∪λ∪⊂∪⊂	∀TFEX∃⊗XH→P→⊂≤εE∀!⊂ae`jSj"hUλ∀& fP" P⊗	V0y3\P∪∀TCE→X∃XP88βE)f Sa" P∪V0y→yFE⊂λ∀'iεB⊂⊂⊂⊂⊗V εEλ⊂⊂⊂⊂λ∀!gg⊃εE⊂⊂λ⊂⊂⊂⊂λ∀∀ g⊃⊂∀"hH∀!`iλ27vVY97vTCE⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂
(jgj⊃P#&4\z'∀TCE⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ∀"hf⊃g#j$λ27vVY97vPTTFEλ⊂⊂⊂⊂λ⊂⊂⊂⊂
&$ijλ∀(jgU"P'⊗Pi,TTJFE⊂⊂λ⊂⊂⊂⊂λ∀∀&4\z#7y≠pz⊂∀⊂`i⊂2≠vVs9≠vTTFB⊂⊂⊂⊂λ⊂⊂⊂⊂λ'$f∀CE⊂⊂⊂λ⊂⊂⊂⊂
*⊂∀+Xy74g→P⊃+t_z⊂:<\2P7cλ3:w1]4ww⊂~0yP0H37y6Xz⊂64ZrP⊃⊂→7vVs≤5vP⊃∂P⊃∀FB⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂'$f
TFE⊂λ⊂⊂⊂⊂εE⊂⊂λ⊂⊂⊂∀⊂`i⊂9\2qyTCE⊂⊂⊂λ⊂⊂⊗⊗⊂εE⊂⊂λ⊂⊂⊂∀∪`h!`TεE⊂⊂λ⊂⊂⊂⊂λ9v7z≠4yzεB⊂⊂⊂⊂λ⊂⊂⊂∀⊃*g!j∩gg⊂∀∪ fa"⊂P∀9v≥∀FE⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ∀""aS i"P
&'a`S+ i)H9v:∀CE⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂∀)T"ac T)P0y→yTTFB⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊗εB⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂∀!Sg"εEλ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂-J&bfaλ∀(jgU"P*yYbv2vYw:9gY y3yJFE⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂3_TFE⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂_∀! aRhjgj⊃hU⊂∀∩yguP
⊗⊗⊂-Q7y6p]!wry≤tswεB⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂∀(Ugj"P⊂∀!`T⊂∀!`Q)⊂27[T¬from)))
                                          (GetValu`
@P4|AgYP@Q
&$~∀@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A)=β←[aUiJR~(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q#U∨!
A→←eKCPR~∀@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q#+∨Q
@Q≤
~⊗NdzRtQ$ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧ααα    ,,
                                        (GetGetVal slt (-> args (SlotArgs)
                                                           UnitName)
                                                   (-> args (SlotArgs)
                                                       Others]
              (T `(BACKQUOTEQ* (IsOk ,, (GetGetVal slt (-> args (SlotArgs)
                                                           UnitName)
                                                   (-> args (SlotArgs)
                                                       Others]
    NoEntries]
30*!nx p
(RangeType (LIST & &))
31*2 pp
[LIST [QUOTE , (COND ((MEMB (QUOTE PreservesOrder)
                            fc)
                       (QUOTE FOrderedSet))
                     (T (QUOTE FSet]
      (, (COND
           ((MEMB (QUOTE OR)
                  fc)
             (QUOTE UnionDT))
           ((MEMB (QUOTE AND)
                  fc)
             (QUOTE IntersectDT))
           (T (Warning "In " (QUOTE SetSCFormer)
                       ":"
                       (QUOTE ToCompute)
                       "."    - are you taking the OR junction, or the AND?")))
         (MAPCAR slotlist (FUNCTION (LAMBDA (slt)
                     (DECLARE (LOCALVARS slt))
                     (PROG ((rt (-> slt (FS)
                                    RangeType)))
                           (DECLARE (LOCALVARS rt))
                           (RETURN (SELECTQ (CAR rt)
                                            (FListN (CONS (QUOTE L-OR)
                                                          (CDR rt)))
                                            (CADR rt]
32*nx

NX  ?
 ***  Am re-opening Dribble file: <GREINER.RLL>TRACEA.OCT12.1 [
12-Oct-81 11:44:09]
33*!nx p
(DomainType (BACKQUOTEQ* &))
34*-1 pp
`(FListN ,, (IntersectDT (MAPCAR slotlist (FUNCTION SingleArgOf)))
         UnrestrictedType)
35*; Ah yes, this was the fix.  Nothing to worry about.
35*; (This must be doing wonders at instilling confidence.  Oh well...)
...
35*TOS
-*-*- TOS put me at the top of the slot.
36*p
(LAMBDA (specs other args) (DECLARE &) (PROG & & & &))
36*f Warn≠
=Warning
37*p
(Warning "In " (QUOTE SetSCFormer) ":" (QUOTE ToCompute) ".")
37*:
-*-*- Just to remove it from future consideration.
-*-*- If not, skip to "-*-*- HERE -*-*-"
38*SP
Verifying slots
Using UA-PUTPROP, not full PutValue
86:RETURN
ERROR = NIL

-*-*- Here are 22 list garbage collections.  Throughout the Bumping facility
-*-*- has been working like a charm.
-*-*- But I was curious just what was happening, so I ↑Hed.

interrupted before RPLACD

(RPLACD broken)
87:NXBRK
(UA-GETPROP UA-PUTPROP UA-REMPROP)
-*-*- The NXBRK macro simply breaks those function above.
88:ok
RPLACD

(UA-GETPROP broken)
89:?=
$$UNIT = FnForUpdating
$$PROP = ToGetValue
90:BT
UA-GETPROP
GetAccessFn
GetValue
UpdateASUIB
*PROG*LAM
InvalidateEach
UpdateASUIB
COND
(LAMBDA (thisslot changedslot args hld) (* OR args &) (COND & & &))
APPLY*
COJD
*PROG*LAM
PROG
(LAMBDA (suib) (DECLARE &) (PROG & & &))
MAPCAR
OR
*PROG*LAM
PROG
(LAMBDA (slt oth) (DECLARE & &) (PROG & & & &))
APPLY*
(LAMBDA (unt sl oth) (APPLY* & unt oth))
GetTalue
PROG
(LAMBDA (slt oth) (DECLARE &) (PROG & & & & & & &))
DefaultActualGetValue
GetValue
DefaultAfterPutValue
DefaultInvalidateUnitFn
InvalidateValue
*PROG*LAM
*PROG*LAM
UpdateDepend
AND
(LAMBDA (uThisUNit uThisSlot new modif why) (AND & &))
DefaultAfterPutValue
*PROG*LAM
DefaultPutValue
PutValue
DefaultInvalidateSlot
InvalidateValue
*PROG*LAM
*PROG*LAM
UpdateDepend
AND
(LAMBDA (uThisUnit uThisSlot new modif why) (AND & &))
DefaultAfterPutValue
*PROG*LAM
DefaultPutValue
PutValue
CacheIfNonTrivial
CacheValue
DefaultActualGetValue
GetValue
EVAL
*PROG*LAM
*PROG*LAM
UpdateDepeNd
AND
(LAMBDA (uThisUnit uThisSlot new modif why) (AND & &))
DefaultAfterPutValue
*PROG*LAM
DefaultDeleteValue
DeleteValue
*PROG*LAM
*PROG*LAM
DeleteInverseLinksA0196
MapSlotsA0151
MAP2C
MapSlots
DeleteInverseLinks
DefaultDeleteThing
*PROG*LAM
PROG
DeleteSubUnit
KillUnit
KillUnit
**TOP**

-*-*- So a lot of things are going on.
-*-*- This gives me a chance to show off the BTFN macro
91:BTFN GetValue

   *ARG3 (SAFESLOT)
   *ARG2 FnForUpdating
   *ARG1 OneOf
GetValue

   *ARG3 (SAFESLOT)
   *ARG2 EffectedSlotsGen
   *ARG1 Prototypes
GetValue

   *ARG3 (SAFESLOT)
   *ARG2 KBUpdates
   *ARG1 PRototypes
GetValue

   *ARG3 (SAFESLOT)
   *ARG2 SuperClass"
   *ARG1 AnySubUnit
GetValue
**TOP**

92:BTFN HLDefnExpander
**TOP**

93:BTFN Invalid≠ Update≠
=UpdateASUIB

   gen-p Gen
   args (uThisUnit uThisSlot new modif why)

   changslt Prototypes
   hld (OneOf SuperClass* SupeRTypEx* SuperSlot* GenlAct*)

   affectdst AllGenls
UpdateASUIB
=InvalidateEach

   *ARG5 Gen
   *ARG4 (uThisUnit uThisSlot new modif why)

   *ARG3 Prototypes
   *ARG2 (Unioning Prototypes (OneOf SuperClass* SuperTypEx* SuperSlot* 
                                     GenlAct*))

   *ARG1 AllGenls
InvalidateEach
=UpdateASUIB

   gen-p Gen
   args (uThisUnit uThisSlot new modif why)

   changslt Prototypes
   hld (Unioning Prototypes (OneOf SuperClass* SuperTypEx* SuperSlot* GenlAct*))

   affectdst AllGenls
UpdateASUIB
=InvalidateValue

   *ARG4 (-INVERSES (From MySensibleSlotq MySS-Std MyPrototypes AllAsas 
                          SuperClass*)
                    -VERIFY)

   *ARG3 AllIsas
   *ARG2 PRototypes
   *ARG1 IsaOfGeorge
InvalidateValue
=UpdateDepend

   why (-IJVERSES (From MySensibleSlots MySS-Std MyProtktypes AllIsas 
                        SuperClAss")
                  -VERIFY)

   *ARG5 (OldVal AnySubUnit AnyIntensionalObject AnyAbstractThing Anything)

   *ARG4 RecomputeMe
   uPhisSlot AllIsas
   *ARG2 IsaOfGeorge
   *ARG1 ((MyPrototypes uPhiSUnitInvalidate1)
          (PrototypeS uThisQniT Ifvalidate1))
UpdateDepend
=InvalidateValue

   *ARG4 ((Brom MySensibleSlotpεA≠sM&['i⊂A≠s!I←i←ieaKfA¬YYβgαMαO/β↔J∂fOM)Hh)↓↓α↓↓↓↓α↓↓6Z-∩&~eHh(4)α↓↓*ε∀9MαO/β↔J∂dOMλhQ↓↓↓T
J≥I∧32π≤L4)α↓↓*ε∀9Eα'≡
?~∨.{K∨∀hR';[∞c'∪π&*[π3.(4)v/β∪πS,#↔C↔v 4(4R↓↓β←GI↓!"7∪?5αoJO↔;≡K3⊗≡c?SM∧kfNMm≠S⊃αoJCK?&{SgC/→απ3dKOπM¬≠WC↔∀≠3πO~Q$4)α↓↓↓↓α↓↓6Z-∩&~eHh(4)α↓↓*ε∀9U↓"}c∩[πbH4)↓α↓*εJ;!↓"πwJOW
.s'Qα∞sf';&+;O'}sπ2?⊗S↔∂Q∧;fπtractThing Anything)

   uThisSlot SuperClass*
   *ARG2 AnySubUnit
   *ARG1 ((MyAllIsas NIL Invalidate0)
          (AllIsas [LISTP (GetValue uThisUnit (QUOTE UnitExamples)
                                    (QUOTE (SAFESLOT]
                   InvalidateAll)
          (GenlsModels uThisUnit Invalidate1)
          (AllGenls uThisUnit Invalidate1))
UpdateDepend
=UpdateDepend

   why ((From UnitExamples)
        -VERIFY -INVERSES)

   *ARG5 (Delete1 . PossessionsOfGeorge)
   *ARG4 (IsaOfGeorge PossessionsOfTypicalPoorPerson TypicalSubUnit)

   uThisSlot UnitExamples
   *ARG2 AnySubUnit
   *ARG1 ((AllExamples [LISTP (GetValue uThisUnit (QUOTE SuperClass*)
                                        (QUOTE (SAFESLOT]
                       InvalidateAll))
UpdateDepend
**TOP**

-*-*- Well, everything's kosher.  The reason it's taking so long is because
-*-*- I was fooling around with that IsaOfGeorge subunit.  So there's
-*-*- a lot of new things it Has to do, to handle this subunit.
-*-*- (A lot of the work above was done for RLL to understand the classes
-*-*- to which George belongs...)
94:UB
¬
Collecting lists
17041, 17041 dree cells, 29 pages left
(UA-GEDPROP)
 ***  Am pe-opening Dribble file: <CREINAR.RLL>TRACEA.OCT12,1 [⊃2-Oct-81 11:53:33]
-*-*- By the way, if you suspEct that units are NOT be bumped fast enough,
-*-*- the macro
95:BUMP
There are noW 16 units `in core'.
"!DOJE!"
-*-*- bumps units until there are fewer than 60 left.
-*-*- anywai
96:OK
UA-GEDPROP

(UA-PUTPROP broken)
97:?=
$ UNIT = PutInOrder-C
$∧PROP = FnForUpdating
$$VALUE = ObderingUpdating
98:UB
(UA-PUTPROP)
99:ok
UA-PUTPROP

(UA-REMPROP broken)
100:?=
$$UNIT = IsaOFGeorge
$⊃!%∨ zA∨e⊃KeKIAeWi←QsaKf4∀b`*≤B⊗∞hR[π3.)β?→αBV¬6<*RBJ⎇↓↓≡'≡
?~∨.{K∨∃α:?K∪/∪↔∩C⊗{S/SOβ↔M%εKL4)E#gC'≡2OW∃+;'Q¬#gC'≡2π∨#Kπ∂%##';8αSgCN≠π2SFK;≥$hQ5)5RiαS#O→β7π∨∪=β'~βCK↔'#eβ∨.s↔Kπbaβπ;"β≠π'⊗ceβOnKQβ∂!β≠'v#';≥π##∃β.s'Qβ∞s⊃βOf{P4)jQ5)5π#=βC⊗+O↔;"p4)IV{,4*,	6J⊗mαJ>@hP4)",	6J⊗mαJ>Aε∪K?/.q$4)≠Q⎇t4R!∩V:M!↓uαε{OO↔∨≠'?;≤{~SgεK∂π2ε{?JC/∪O?8hQ⊃∩B∀zA↓u∧32'≡L4)#R∞"⊗≤X4*[∞cW∃β}1↓"V
j≡⊗R¬∩>A↓=β?OO/≠O'?w~?~SOβ'∂πeβ??Jε+KO?r↓≡π3dKOπMJβ'L4RBπ;f∨+
W;O!απ;LK;S↔w≠'?;∞b?+.≠QαπwJπO'∪π∂R&C';≥∧;gSFK;≥$hQUjV⊂h)"V
jJ⊗6¬∩>A$hQ]k?Xh*V¬m∩⊗6B∀z@4(hS∂?3f+∂S'v9β3'∨#L4)∪	IEYb↓IEI1β≠K.)β∂↔fcM1↓∪IβCπ>+Mβ3.3P4(hS∂?3f+∂S'v9βπS}iβ;πn)β∂#∂∪π∂S/∪L4)⊃]E1β	I]Eε3K↔∃ε≠↔33~a↓Ieπβπ∨↔~β3↔≠ h*C?}1∧4)jQ5)5εKQ∨Mε;?;∃αiβ3↔";Mβ∂F+∂-1εSWOQπ#=β7∞[∃βO/∪∃h4SB}⊗ThQvO↔%~∞≠?⊗k↔H4V+∪'PhQ5)5Riα??π→↓5βv{Qα⊗+c∂Iyε+∪'S~βS#∃πβK↔[N{WMβ.s'Q9∧;g←∂I04)≠I+?,hR;?SFK;≥β≡Cπ;∨.!84*≡+RN∞6{K7↔⊂h)↓)RQ↓απjβK∃7␈β↔;'v9α∪KN∪3∃ε3'3∃R↓r≡J,J:⊗Iu∩21z%∩ε∞⊗
r>∞Q⊃9EαXh)EIl{∂Q5C	↓EES)]iM5h4)f|*Uα∨.{K∨∀hS↔∪' h)QAV1α'Oλh)QEW4)9rqα'O
↓!*∪zQα~O.*W;'"α'Oε}2∨↔?⊗;∃%α␈∪∪↔K."CK?&{SgC/→↓"SOβ'∂πeβ??Jε+CO?r4*SOβ'∂πeβ↔KO}qαSgεK∂π2&C';≥JαC?O≡+OO'}sMα;|+;SKJH4)5Ri)5α∨+KK↔w#3eβvyβC?∨≠↔OON{;M1εs?Qβ
α~O↔-+;'Qph)QEV{,4*v{S#'v9β∂#∞s∨↔⊃ph*∨↔␈∪∨∀4Ri)5)jβS=β≡C?]β&C∃α∨/"[π3.)β←?⊗[M1β/3↔9↓↔##K?.;!	β
βOW.s'P4S	B}∨/"[π3.)"∨↔␈∪∨∃αO≠εt4RBπ;fε{?JC/∪O?9Hh)5)jQ5α3/!∨Mβ≡+∃β#␈9β7W≡Aβ≠π∨#↔Iβ&C'Mβ↑K33'v9β←'faβ∃bβ?;∂*βS#'v;Mβπ⊗)β∂π≡C↔⊃β∂;πehhQEF}↑K3"WvKQ"'≡
?~∨.{K∨⊗hh*C?}1∧4)hQ5)5∧s=α≡∨→1β'"βS??Zβ?;3Jβ¬β≠/9βO↔≤{;∪Mph)EJ|*T4)l;↔?K>(4+↔&KP4)#⊃*BB(h*7fO≠¬↓↓αBπ;f≡+3~π>K⊗WvKQ$4Tkf∂K.S?Iα↓↓↓↓ααKWO≤;K↔'v+H4*oJS'7,{~∂K.S'?r↓↓↓↓α↓↓↓	∪I6O↔αiaE↓∪⊃iIUS↓Uλ4Tkf∂K.S↔∩∂→↓↓↓α↓"&↔F7C3/→↓"πwJC??∃β↔KO}q%$4TKO¬↓α↓↓↓"∞sfC?␈∩C↔K≡{9$4T{K∪↔⊗+∩CK␈#?Sgε+M↓↓α↓↓↓↓E#gC'≡2C?␈∩C↔K≡{9αSMβ'∂πeβ↔KO}qαSgεK∂π2&C';≥Hh*C?∨≠↔OON{;M↓α↓↓α;|+;SKHh)5)jQ5βπv!β#∃?→βOSNc1β¬πβ??Iπβ↔KO}q84)#→+?,hR;/SFK;≥β≡Cπ;∨.!84*>+?K∨(h)EN{Yβ;?:βS=β/≠∃β¬π≠WWvKQh4S	N}C/"[π3.)"∨↔␈∪∨∃αε{OO↔∨≠'?;~↓!E↓∩↓M↓Qβ*t4(hS∂?3f+∂S'v9βπS}iβ;πn)β∂#∂∪π∂S/∪L4)K→E1↓K→Eβ≠⊗+∃β∂.c3M1β⊃eβC∞;↔Mβf+≠P4RAE↓Iβ→↓Q↓*H4)5Ri)5α⊗+∂π3bβS#π"β←?Wf!α:>"β#π[*β←?K↑+⊃β≠␈⊃α∪π&#e9↓¬##∃β⊗+πO?sP4)5Ri)5β&C∃β[∞cW↔Mπ;↔K∃π3↔K'6K↔⊃β↔H4)E%z⊗Uαε{OO↔∨≠'?;≤{~SgεK∂π2ε{?JC/∪O?8hS↔∪' h)QQW4)"⊗;∨⊗'KC∃↓D2O↔Q∧K;S↔>+JSgε)%α7LKO¬↓D;fO.c~π←∂∪⊗W;O!%α7L≠K↔π&{IαK/≠N∨K.K;↔Ih*7f&K7⊗?4≠K↔π&K?9↓∪→A6O/↓5aEβ	YiA;QUe	∧kf∂K.S↔∩∂→↓"&/Cπ7Cf+M↓→Jα'O¬αBπ;f∨+
W;O!$4)∧kf3'6+N':f{∂πSN{9↓"'KC'∂∞bC??∃β↔KO}qαC?∨≠↔OON{;M%∧kfπ3dKOπMαBπ;f≡+3~π>K⊗WvKQ4T;fWvKQαπwJ∂?;∨∪↔S⊗&C';≥∧;gSFK;≥%∧#πSπ'KC∃↓DK;S↔>+JSgε)%α≠␈∪7πQ∧2O↔Qαi5$4S!Q+\hQ999¬3↔K'7Jπ31αB2ε6∀"¬↓→α1%$4S!U)5
βC@4UZ2ε6∀"¬↓#.qβO1π3π1β∨+	βc'⊃β7?&K→$4R↓↓"εt!αn∞|r⊂4	α↓↓↓↓α↓↓↓!D
R>5π3π1$hQ↓↓↓α↓↓↓↓α↓↓"⊗
β[π1∧s>↔;'∪'↔MJH4)↓α↓↓↓↓α↓↓"QαBBJ>:↓!"6~J>aπ3π1%Hh)↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓αB∩⊗∞d
J∃↓Db6∞εe2εJM∧jε∞J⎇A%$4R↓↓↓↓α↓↓↓↓α↓↓↓αl
B∞2h)↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓αB∞>: h)↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓!"u*21↓Db&NRαα6ε∞∀za%$hQ↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓"∀*RVJrαQ%$hQ↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓!":,b1↓"4JbA↓D~εIαl
∞J>BI%$4R↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓"J-"VJ9JI$4)α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓"N-"Eα6~J>aαB∞∩I∧jε∞J⎇A%$4R↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓"<yα6ε∧~2BthQ↓↓↓α↓↓β7}#'~thQ5)5Riαyβ&C'Mβ7+;∂SN{984S!Y*Nh*;?&C';≥ε≠#π;>+⊃84Uβ?OO/≠O'?w~?~SOβ'∂πeβ??Jε+CO?ph)5)jQ5α;␈9β3↔";Mβ7∞[∃βC}{IβC.{C3∃π∪↔π3gIβC?␈⊃04)αQ))↓∧5βK*k?C↔vK;≥α'∪'f)β≠'f)i↓r=∩⊗&:-⊃:J2crRJε≤*¬:>≥!EI9
αl4)⊃6?∂"iaE↓⊃iAIS	↑t4S	V⎇"π+R≠π.c⊃↓≡'KC'∂∞bC??∃β↔KO}q↓≡C␈≠O↔O≡K?;Mα:Kπ;>*SgC*↓≥"~fKOR9∧K;S↔>+JSgε*t4(hS∂?3f+∂S'v9β3'∨#L4)9QIAb↓E]Q∪↓β≠K.)β∂↔fcM1↓∪IβCπ>+Mβ3.3P4(hS∂?3f+∂S'v9β3'∨#L4)9]e]b↓E]]K9β≠K.)β∂↔fcM1↓∪IβCπ>+Mβ3.3P4(hS∂?3f+∂S'v9βπS}iβ;πn)β∂#∂∪π∂S/∪L4)⊃]]1β	I]]ε3K↔∃ε≠↔33~a↓Ieπβπ∨↔~β3↔≠ h(4+≡{33↔∨#';≥εc'OS_h)Ea#⊃E1↓AQIEε3K↔∃ε≠↔33~a↓Ieπβπ∨↔~β3↔≠ h*S#*β[π3.)β?→¬β?OO/≠O'?w~?~SOβ'∂πeβ??Jε+KO?sR≠?KnQβ∂F;∨↔"β≠K?jα~O↔"βS=α4c'ORrp4*OF31αJβWC∪∂#∃βπfaβCK/3'?W≡ceβ∂∞≠#↔⊃π3π3W/→1βπ≡≠?K∪Ns∨3ezβ;<4RB~3'∨"9α'w#↔∨↔∃#gC∃Hh)5)jQ5απ∨#Wπ3gI1α%πβK?∞∪3eβ≡C?W3"β#π[*β3↔QεKQ1β∂→β?;gIα∨↔␈∪∨∃β>{W3⊃∧Cπ[∃ε∪↔↔8hQ5)5Riβ↔≠6+∂S↔"p4)E5z⊗Uα>+?K∨(h+↔∪O 4)Q:S→αC␈_l4)mβ?OO/≠O'∨w_4)QBS@4)rq9αC␈≠O↔O≡K?;MαAE↓Iβ→↓Q↓*Iαπ3dKOπMαBπ;fε{?JC/∪O?9∧;fC/∪O?9∧;gSFK;≥%Hh)QaSP4)QJQh4)+↓*N@hR[↔KN3g';:βO3?'_4)5Ri)5αJβ∪↔3/#↔⊃β&C∃β[∞cW¬β↔Iβ#πv!1β≠␈⊃βOπ6+Se8hRWO'v9αV¬mαVRB∀zA1βv{Qβ≠.c1αC/"[π3.(4*∨.{K∨∀hQ5)5Riα;?:β3↔Q?→βSKJβS#π"βOπ7(h)E↑⎇βWR[∞cW∃">+?K∨*αC/O≡+OO'}sM↓!2↓Q↓Nhh*:&`h)5)jQ5α;␈#∃β'"β∪'∪r;Qβ←␈∪-1β∂→β∪↔≡KK↔⊃ph)Eb}3'a↓84+↔&KP4)+	)5Eε∪-β@hQ"∨↔␈∪∨∃αε{OO↔∨≠'?;~↓!Y↓ ↓M%$hQUM)i	β@4RAY↓Qβ→$4)+!)!IHh)UURAI$4S)Y+?Xh)!YHh)5)jQ5α;␈9β←#∂!β∪=πK?Uβ>;Qβ&yβO↔+x4)5Ri)5α&C∃βπ&#[π3.+M1β&+3↔S/3π3W/→1↓9rqβπ3bβ←?KZβ∂?K⊗+OC?v#';∨gI84)J}N>~αJVN_h*g*β;?]ph)"+/≠Qβ∂⊗+πS↔"βS#∃π≠gO?/!↓r≡∀*&:⊗∩rJ21u∩VNMt*b∃9
H4*'"β'Mβv{]↓E∩j?∂QkAE↓E∪QA]i	84*≡c?O'v9α∪KN∪3⊗6K3∃↓d:J⊗&t*I:JdazRJ~⊗¬:|~QEIsλ4(∂19-Oct-81  1345	Steve Klein <SKLEIN at USC-ISIB> 	Reincarnation   
To: RDG at SU-AI

Hi.  Sorry for this extreeeeemly long delay.  As is disgustingly typical, I
was buried under some other details around here.  I am, however, getting back
into the continuous RLL mode so things should pick up quickly.  Bill is now
very anxious for me to make something hap@AK\\@↓∩OmJ↓←]Yr↓I←]J↓BAMSIghAe∃CIS]≤~∃←L↓s←kd↓←akf↓IeSE	YJ@Q]QK\A$AMSeMhAO←PAShR↓g↑A∩↓o←\OPAG←[5K]hA=\AC]eiQS]≤AsKh8~∃%K¬GiS←9fAKSQQKdA1CiKd↓i←ICdXA←d↓i←[←Ie←n@!Y←←WLA]KCPXAiQ=kGPR8\\~∃MiKmJ8~∀ZZ4ZZZZ4∀~∀≡H`[∨GPZpb@bpbf%'iKm∀A↔YK%\@y'-→∪≤↓ChA+Mε[∪'%∧t@∪5keV@![keL|R@@@~∃)↑hA%	∞↓ChA'T[β∩~(~∃∨o⊃rt~∀4∃/KY0XA∩AMK[R[⊃SOKgQKHAs=kdA[¬O]kZ↓←akf8\]iQ∀AiQS9NAiQ¬hAY←=WfAi!JA[←Mh~∀E%]iKe∃giS]≤DACh↓iQJA5←[K]PASfAQQJAM¬GhAi!ChAg1←ifA¬]HAM%KYIf↓gKKZ↓i↑~∃	JAK]QSeKYdAS]i∃e[S]≥YKH@!)saS
CY'Y=hASf↓BAO←=HAKq¬[aYJ$\@Aβ1iQ←k≥P~∃∩↓M←YY=oKHAe←kdAAeS←d↓CeOk5K]hA¬E←kh↓gS[S1CeSidA←LAQQJAi]↑XASP@~∃]∃mKd[QQJ[Y∃gfAg∃K[fAMieC]≥J\@@4∃'←[∀Aa←gMSESY%iSKfh@AiQ∃eJASLAg←[∀AGYK¬dAISMiS]OUSgQS9NAae%]GSa1J@~∀@@@@@@@@@@@@@@@@@@@Q
keeK9iYrAU]W]←]\R~∀@@@@@@@@@@@@@@@@↓iQKr↓CeJA%\AeK¬YSir↓SIK]QSGCX~∀@@@@@@@@@@@@@@@@AE=iPAe∃aeKg∃]hAS9giC]
KfA←_Ag←[∀A[←e∀AMk]⊃C[K]QCX~∀@@@@@@@@@@@@@@@@@@A[∃GQC]%gZ@QeKKGP$~∀~∃QQJAg∃G←]H↓a←gg%ESYSQrAo←UYHAE∀AS]i∃eKgi%]NXA	khAY%WKYr↓k]eK¬g←]C	YJ\~)πYKCIYrXAQQSfA⊃←Kg\≥hA[CQiKdA5kGPA¬hAiQ∀A[←[∃]hAC9HAae=ECEYdA←]YdAkgJ4∃oSY0Aae←YSIJA¬]goKIfXAg<AoQCPAiQJ↓QKYX8\\~∀4∃∩AI=\OhA!CmJA¬]rAI%eKGh↓C]go∃efAi<AC]r↓←LAi!JAae=EYK[LAs←j↓eCSg∃HX@~)Q←aK→kYYr↓iQCh↓oSYX↓GQC]≥JAYCQKd@Q=dAs←TOYXAM←YmJ↓iQKZ0AQKJ↓QKJR8~∀~∃$AQCm∃\OhA%[aYK5K]iK⊂AiQJ↓[←IS→SGCi%←\[e∃G←eI%]NA[∃GQC]%gZAs∃hXAa¬eiSC1Yr~∃⊃kJAi<AiQJ↓giCi∀@Qk]QSXAe∃GK]i1rRA←_AiQJ↓[←IS→SGCi%←\AC9HAoQdAaCe5f\~∃
←]gKEkK]i1rXAi!JA←]1rAGQ¬]OKf↓oJAQ¬mJACIJAiQ∀AECg%FAMk9GiS←9CXAG!C]OKL~∃G←9iCS]∃HAS\y≠β≥
∨~]%1_⎇β	⊃∪)∪∨9&\\@@A∩A⊃←\Oh↓W]←n↓Q←nAe←jAo¬]hAi<~∃QC9IYJA%]G←eA←eCi%←\←MQaS]N=oQCi∃mKdX↓←dAo!KiQKHAs←j↓oC]h↓i↑AC
GKah↓CYX~)←LAi!JAGQ¬]OKf↓∩OmJ↓[CIJ8\\@A1KhA[∀AW]←\Ai←[=ee←n↓C]HA]JAGC8AQCG,A←kh4∃iQJ↓IKiC%YfA←8AKmKIsiQS9N\@A¬GikC1YrXA]QK\Ae←jACIJAS\↓C]HA→eKJX↓∩AGC8~∃UkMhAOSYJAs←TABAG¬YXXA1←]N[⊃SgiC9GJAKYK\AE∃S]NA¬aae←YKHA←_AQKe∃CE←kQf\~∀4∃'iKYJ\~∀4ZZZZ4Z~∀~(_∨)≡↓'↔→%≤@bbhhp@dD[∨Gh4∃πkeIK]hX↓S[[K⊃SCiJ↓giCiUft
∀%→∪' ↓ISKH↓BAMk9]rAI∃CiPA1CghAMk]ICd@ZZA=]YrAyεAo←IWKHX↓i↑AO∃hA[J4∃←kh↓←LASP\@AβAaCeK9iYrAM←[JAIC]I←4AiQS9NAQCAaK]K⊂Ai↑A]KIOJ↓iQJA)←DXA	KioK∃\~∃→%' AC9HA%C9H[β∩↓SigK1L\@AQQJA]∃hAKM→KGhA]CfAi!ChA∩↓YWgh↓CE←kP@f@b<dAQ←Uef~∃=LAo←IV\@A→←eik9CiKYdA∩AI<AQCm∀AiQJ↓IeSE	YJAM%YJAMI←ZAi!Ch@Z4Ak]M=eik]¬iKYr4∃iQCPAMSY∀AeKcUSeKfbhfA1S]JAAeS]i∃dAaC≥KfAi<AaeS9hA←kP\@A∩≥ZA]←\AQ←a%]NAi<~∃eKQke\AQ↑AoQ∃eJA∩↓oCfA)kgh[	KM←e∀[iQJ5K]HA=LAiQ¬hAgKMgS←\8\\@A≥ek[E1J\~∀4∃β]s]CrXAeKfXA]JAgQ=kYHA
QCh@4AaKe!CafA1CiKd↓i←ICd\@A∩↓aYC\↓i↑AE∀AQ←[∀~∃CY0AICrZZAk9iSXA¬E←khjthkA~\@A]QK\AMQCYX↓∩AKqAKGhA∧AGCY0}@A≠¬sEJA¬E←khdtf`|~∀~∀4ZZZ~)¬KY←\ACeJ↓g←[J↓G←[[∃]if←MkOOKMiS←]L←oCe9S]Nt4∀∩∀b8A∪\AQQJ@E$AGC\≥hAEK1SKmJ↓∩AIS⊂AShAQQChA]CrDA
CiKO=ert~)%KGC1XA←kHAMeS∃]HXA→k]Gi%←]'a∃Ft@AQQJ@Q9KmKd↓GCGQ∃HRAm¬YcJA=HAu→k]Gi%←]'a∃F~∃o¬fABA1SghA=HAM←UdACe≥k[K]QfX@QQ←π←[AkiJAIC]OKQsaJA⊃←[CS9)saJ}R\@↓)QJA%IKB~)oCfA→←dAi!←gJA⊃←[CS8AC]H↓%C]O∀AIKg
eSai%←]fAQ↑AQK1`Aga∃GSMr↓iQJA→k]Gi%←\XAMi←eK⊂~∃C\↓iQJA→Segh↓a←gSQS←\\A⊃←o∃mKdAQQKrA⊃SHA]=hAG←IeKga=]HtAQQJA	=[CS]QsaJA→←dAB~∃gY=hAoCLAM←d↓io↑A¬eOk[∃]ifX↓CfAi!KgJA]KeJA¬YXAi!JACe≥k[K]QfABAMY←hX↓oQK\↓mSKo∃H~¬CLABAMU]GiS=\XAG¬\AiC-J@QS∀@Q∪g∧@O'i∃mJ@N!'β
M→∨(R$XAoQ∃eJAi!ChAg∃G←]H~∃Ce≥k[K]PASfA=aiS←9CXXAAKe[SQiS]NQ)←π=[aki∀@O'kAKeπY¬gfTR$\@@~)¬KM←IJAiQ∀AeKG∃]hAG!C]OJ0AiQCPA)←π=[aki∀AMk]
iS←\↓i←←VfACe≥k[K]QfB~∃%hOfA9←nAE∃K\AM%qKHX↓ECgS
CYYr4∃ErAQoSII1S]NAQQJAa∃eaC]∃]hQg@RA'Y=hAπ←5ES]KIfP@Q¬GikC1YrAEdAgS[AYrA[¬ggCO%]N~∃QQJAs∃hAKm∃\AMK]KdAπA
←e5KefX$AC]H↓akii%]NAB↓GQKG,AS\A⊃KMCk1iβGiUCY∂KQ-CYk∀~∃oQ%GPAg!←kif↓SLAi!JA&UQ←π←[AkiJAYCYkJ↓SfAB↓Mk]GQS←\A=LA[←IJAiQ¬hAio<ACeOU[K]iL\@@~)∪LAC9HAoQ∃\ASh↓Q←YY∃efXAMCrA2↓i↑Ai!J@E¬IKCV}DAck∃giS←8XAiQ∃\Akg∀AiQJ↓+∧~)¬%β-≠βπ%<@QEr↓isaS9NA+λyGd|↓i↑Ai!J@tAAe←[aPRXAi!K\@Q→'YhAQ←π←[AkiJR↓i↑AO<~∃i↑↓iQJAQ←π←[AkiJAMY←hv↓→0Aa=gSiS=]fAs=jA←\↓iQJA=MMK]⊃S]NAYCYkJ8~∀~∀H\@A≠e'K]g%EYK'1←ifA!CfAB↓]KnA⊃KMS]%iS←\hA)ke9fA←kPAiQ←MJAgY=ifAo!SGPA5CWJ~)gK]g∀AM←d↓BAgk	k]Sh↓CeJA	←iPAQQ←gJ↓oQSG ACeJ↓oKYX↓IKMS9KHAM=dAgk	k]SiLX~∃C9HAiQ=gJAo!SGP~)[CWJ↓gK]g∀AM←d↓iQJAU]ShA]QSGP↓IKgGISEKf↓iQJAMY←hA]QSGP↓iQSf↓gkEk9ShAM%YYf\4∀Q∞↓iQKe∀ACeJ↓io↑A
CiKO=eSKf↓←LAY∃OSiS5CiJAMY←if↓M←dAQQJA!=ggKgMS←]g=M∂K←IOJ~∃U]Sht↓gY←iLAoQS
PACe∀AIKM%]KHA→←dAgUEk]SQfAS\↓OK]KICXXAMkGPA¬f@Um¬→kJT↓←d@~)≠s→SYKg∪]U]ShX↓C]HAQQ←gJ↓oQSG ACeJ↓IKMS9KHAM=dAiQ∀AgY←PA!←gMKggS=]fX~)gkGP↓CfA⊃%OQ→KYKY	K→\XA←HA%C]≥K)sa∀\R~∃5s'K]MSEYKMY←if≤AIKM%]SiS=\AW]=ofAC	←khAQQSfA9←n\~)β]so¬rXA∩↓iQS],AiQSLASfA⊃←]JA
←eeK
iYrv↓C]HAQQChAQQJAM∃nAaY¬GKfA]QSGP↓kgJ~)iQSf↓mCYk∀@QF]_\A∪g¬β!,R↓I↑Ai!JAG←IeKGh↓iQS]≤\@A'QSYXAQQSfA%fAYCIOKYr4∃k]i∃giKH8~∀~∀L\A)Q∀AoCr↓←LAI∃iKe[%]S]N↓iQJAIC]OKQsaJA=LABA→k]Gi%←\AMI←ZASQfA⊃S≥Q→Km∃Y	KM8X~∃SLA[kG Ag[CIiKdA9←n\@↓
←dAQQS]OLAYSW∀Aπ←[A←gSi%←\A←HAβaa1SGCi%←\XA%hAoS1X~∃kMJAiQ∀AeC]≥JA←L↓←]JA¬eOk[∃]hACLAiQJ↓I←[C%\Ai↑↓iQJA9KqhA%\AiQ∀AGCg
CIJ@4Z~∃C9HAiQ∀A%C]≥K)sa∀AGC\↓]←nAQCWJAQQSf\A'KJ↓iQJA≥Ki%C9OKβaAYrAMU]GiS=\XAC9H~∀QU]Sif↓eKae∃gK]i%]NRA→k]Gi%←]fA1SWJA5β!πβHAM←d↓C\AS1YkgiICiS←8A←LAQQSf\4∀~∃∩↓gQ←k1HAG←5[K]h↓∩OZA9←hAe∃CXAQ¬aarA¬E←kh↓oQCh↓iQ←g∀AqqqIC]OK→\AMk9GiS←9f~∃CIJAS]MSIJ\A)QJ↓Gkee∃]hXAMYSag!←HAS5aYK[∃]iCi%←\AQ¬fAiQ∃ZAGQ∃GWS]≤AM←d4∃gaK
SMSF↓
←e[¬ifXA¬]HAQ¬]IYS9NAKC
PAgKAKeCi∃Yr\@↓πKei¬S]Yr↓iQKr↓gQ←k1HX~∃¬hAYK¬ghXA1←←VA¬hAiQ∀AM←e5ChAgAKGfX↓C]HAUgJAi!KgJA→←dAi!KSdAIKCg←9S]N\4∃≠Cs	JA∩O1XAo←IerAC	←khAQQSfA1CiKd8\\A[¬sEJA9←h\~(~∀h\↓∩A[C⊃JABAMYSOQPAGQC9OJAi<AiQJ↓GCgJ↓oQK\↓iQKe∀ASfA9↑A]K∃HAi↑↓CGik¬YY`$hSC↔K6{K%βλβK↔G,+OS↔ βWC∪∂#∃↓∃j4+↔:β←#↔rβS#∃π+OπI¬#gC↔~αC@/Jl⊗g∞U
R¬~
e∩π>Ybπ&Tπ6∞LX	$
yH∃'
 already V).
The ActualXXXValue routines (for XXX in Put, Add, Delete and Subst)
used to return the atom NoNeedToUpdate.
For subtle reasons, it became clear we had to return the value as well --
so now these routines return a list whose CAR is 
NoNeedToUpdate, and whose CDR is that vaue.


--- Undone ---

1) Have you made any headway in figuring how to record updates made
to the core KBs?  I haven't done anything on this since that initial
set of thoughts, way-back when.
A suggestion:  There is a way we can determine whether a PutValue is
being done at "top level" versus embedded in some hairy-mess:
this involves the /FNS.  These were designed to facilitate the undoing
commands, but I think we could exploit them for this purpose.

(Of course, on a seperate line, we could try to implement some undoing
capability, by ADVISEing UA-PUTPROP and UA-REMPROP in such a way that
they record how to undo them; and store this on some "slot" of the various
historical location.  Then we could undo a command by executing that list
of thing-to-do, to revert back to the state just prior to that instruction.
Of course, we would then have to worry about undo-ing that undo; and about
side effects of undoing user-command # 5 after performing commands 6 and 7.
I'll let you worry about it...)

2) The REEVAL breakmacro needs to be fixed.  TypingREEVAL fn
where fN is NOT a function on the stack( sometimes hangs the jOb -
even ↑H and ↑Es are ineffective.  This uses a generator to walk along
the stack, trying to do spelling corretion.  What do you know about generators?

3) There are still a mess of Warnings strewn about 
-- especially wrt to ApplyToEach things.
I delayed working on thatuntil after (I felt) fields were done satisfactorially.

---
Russ

∂24 Oct 1981 1834-PDT	<CSD.GREINER at SU-SCORE>	Abundance of trivia
To: sklein atUSC-ISIB
cc: GREINER at RAND-AI

Well, I snarfed over (does "over" go with "snarf"?  probably not... anyway,)
your ADDATIONS file, and have incorporated much of it into variouS rll files -
in my current sysout.  The functions I did NOT absorb are:
	KB-Summary  - - do you really plan to type oUt hundreds of unit on 
		the terminal? 
	FoundIn	- - I think this is the same as a UNIT function, OccursIn.
	NewSpec - - There will eventually be an ISpec inheritance, which will
		use this function.  The NewSubClas@LAMk]
iS←\↓SfAi!JA←]∀AoQS
P~∀∩%K[aY=sfA∪MkEπY¬gf\~(∪+`[Akhb∩4@ZA∩↓S]iK9gS←]¬YYbA1KMhA∧AY←]≤Agie%]NA←_A]C[∃fAQKIJ\~∀%+gKI%]'Y←P@Z@Z↓βoMk1YrAKaaK]g%mJvA¬]HA]=hAkg∃HAiQ¬hA←MQK\\@↓βGik¬YY`%`h($&Jβ∪=βF[∃β≡{7↔SFK;≥βfK/¬β&C'MβNqα∪↔6W3R⊗+;π↔-##';8¬B∧J∞MεNv5aPPMy∀4LHWrααT¬R¬6≡-⊗␈/4	4∩ε\≥⊗w&≥l6*π-}W&NlZ2π≡
}Vf"
|'6N≡LRπ&Tεv.\Dε6␈!Q HOM
↔~αUTε∂~∞Mε/J≡6Jπ⎇W⊗*∞Mrπ∨M}&*ε∀g.v>M⊗}r≡2π&≡Bε7]l7&N⎇aPPH≥≡2ε&\i⊗v.Edα¬/<T¬¬-HHbεNn>F.∞D
v2¬
ZD"εm}"π&
≡2bε/∀π&FT∞v∂JaQ HM9nW'~≥f"ε-⎇G'≠$∞FFO4
↔~εM⎇f*ε/∀ε
¬yλTt≤λ→d<,D
ε∂⊗≥\W&/!Q HJ≡7≡}=≤↔&.D∞vO&∧λdu~kQPRjUURhh!Q$↔J∞Mε*π|∨∩b∧∀λ⊗&&\DπN␈↑$ε6O∧
⊗w&t
Uαl*YUβZ≥f"πM
⊗v?4∞6..T∞Fzπ⎇}&Zεm}rph)∀ππ/D
$db∞Mπ↔*
≡G~π≤6/~D⊗v"	∀w6*
mw"εM}7"ε≥o∩πε≤|W~ε≥dπ∂.≡LRε
∞⎇εNfUaPU&≥f←~
↑V≡BaQ hTm}rεo∀6}&UDε}r∞Mε*ε}Mε/∩
⊗v"ee`hT∀
6./∧fNvM≥f:b≥f"εm∨εNvuDεfONMF*ε.\rn/NLW~r∧	∩ε∞N=rπ>≥nBπ&t∞F/∨D
w/"
⎇f(h-]w⊗*∞MεNvt∞vO&∧λdL,HN2rα
Mε.r	∀vfb=F␈≡TW6//≡FFNltπ/αD⊗v"∞∞&}v}]f≡*
≡@hV≥MBπ⊗\≤GJπMtπ≡F≡¬`hPQ%RjjUQPT↔∀∞FF*∞|↔Jb∞Mε/⊗T
↔~ε∀
vroN-↔6N≥DαF↔↑Dπ∨&≥MBπ≡]]∩o≡⎇Nf∞⊗LU∩ππ-|&f.T∞vO&↓Q'&F≡D¬d4j4ππ⊗}
w≡∞G$α∧o\=αε∂4	∩>"
M⊗↑*∞Mrε⊗]M⊗/6T∞FzπMRε≡⎇nG⊗∂/∃Bεo∀g.v>M⊗}w1Q&&}d}Bε∞N|↔O~∞⎇w⊗Z∞W⊗6\>F.&O∃bα¬⎇Vrπ=
w.fD
ε∂π]bπ>]bbπ<∨∩bε∀
π/%l≥G.(Q%ε␈∩∞=vn*]V⊗.LLV"}<≥Ff.D∞7.⊗n]f∨&≥⎇bJε.,V∞←4G/⊗≥lrεON4ε/F\>W&N⎇g2ε∞lDπ&FT↓PW/<↑"π&]bε&|↑2π≡⎇\Rε␈MW∩∧8$εn}M≤fN≡≡M⊗}st∧∧F␈t∞6F␈]LBπ&≡Bε⊗T⊗vv}L↔&.GqPPh*W⊗F≡∞2ε}dVw&↑.&Nvt∩α⎇∞↑E6∞N\Rπ&≡Bε7]l7&N⎇dε≡␈]LBπ?-≡F*π=⎇V/&
≥f:ε|dπ&FQQ&6␈-ThP∃
π/%l≥G.*∧}Rα?4∧w2α␈⊃PTv}LRπ&Tε∞↔<]g≡*
|bε
=F␈≡≥lrα∩∀%bα¬M↔"ε|↑G~ε≡∞ε.vL\Bε}d∞FF*λ9tm∧HZDL|aQ&}2∞Mε*ε≡>6}≡≤≡F."
∞W%6≥NV*r∧	f␈:≥gJαzX∩m¬ZJ¬∀⎇∞5Bε/L5bbπ⎇≥Fbε,Tππ⊗↑<Vw"↓Q&∂~←π'⊗≥lV␈/4↔⊗?]\Vw'4∞vO&
≥bπ&≡Bπ≡≥\Rε6}-Rrα
Mε*ε<≡7.∞D∞W≡/%DhW⎇Vrπ↑=⊗v:∞MεO~m⊗f*∞Mrα↔↑F∂&T$εFO4	4↔~D6∞r∞=⊗oεO∀εN>m}&*πMRπ≡≤LRε.llV∨'5aPT↔∀∞&.∞M≥f:ε≥dπ&F≡4ε6NLTε∞vDWF.>↑FNvtV∞≡∧∞7&/¬Dπ&FT
T
m
ZE¬∀z∞2αF}$π>F≡LW6/%⊃PW>≥MBε⊗TF}vT&.6},Rπ&Tα⊗≡≥MFNvt$¬π/Jl⊗g.T¬Rjπ⎇
⊗≡B∞⎇⊗fb∞↑7.∞O∀ε&z∞Mε*π-≤vG Q.FFNlubα∧∀
V␈⊗T6}v<↑&v.D∞W≡/$6␈.LDε&z∞=vn/M
⊗v:]G≡*∞⎇ε.v↑lW∩ε∀g.v>M⊗}r
↔_h.Mvzε\≥gJε≡,w.n]nG~r∧λf␈∩←ε∞o
LRbπMRπ/<↑"εn∨∀εF∂lTα↔?-≡G&.d$π≡}\Tε␈&↑ hV≥lf␈⊗\≡FN}d
⊗rπM↔"εm≥F*b∞LVff≥lrεF≡4ε6}MMw>/$∞vF∂D∞FzεMubα¬↑&F∂∞4π&FQQ%f6d6␈.LDε&z∞=vn/M
⊗v:
M⊗↑*∞Mε∂"¬URε.t∞7&␈-≥f:∧*DεNr∞Mε*εm≥F*b
}"ε
∞
vNwL↑ hWMtπ&FT
F}≡≡M⊗}r
≥bπ&Tε'⊗≤,&f*m⊗f*=w↔⊗↑>ε}vM≥f:πMtπ&F≡4ππ⊗|-F.jaQ"E&
≡2ε≡}]F"ε,Tε∞≡
≤W6.D'Jπ↑=⊗v:∀ε>f|,⊗bπl≡&N∞-LRbπ<↑Bε↔∀V∞≡∧
v2πMW≡(Q+F6w4∞Fzε≥lFN≡≡LRπ&]↔∩π∞,W≡.l<Rε}d∞FF*∞>F∞≡5e⊂hPQ(⊗v␈MW∩π
⎇⊗w#$∞v*ε≡f*πMtπ⊗.=}&"∧|↑E6∞N\R?~≡2π>]MCZε≡4π&F←∀εnN⎇∞Bε≡≤=ε*ε⊃Q'6∞N\Rrα¬λVO&↑"π&≡Bε␈$∞&.≡},Bε.≤=α∧≡≤=ε-6≥NV*
⊃Q"jjUUPhPQ*FF/,Tε∂⊗T
V∞w∀
w&F↑$εNo∞-w6.\]g'~∞⎇εN≡∧∞6F␈]LBε⊗TF}vTW6.nNV∞fO∀π&z∞-FbpQ('/"D
ε∂6≥lrε∞M.W∨&\DεoJ-FNvL↑'~b	∀vbεL]F∂J∞Mε.j∞]g&ND∂⊗␈*}hRε
=wπJ
|`hWMRπ>}-6Nvt∞7O∨L]Rπ&t
ε∂6T⊗v"∞MrεF⎇LBph!Q$F}⎇t∩αα∞∞&}v}]f≡.D∧&F}T%Bε␈l↑"ε

\⊗wJ∞<V≡}lDεNwL↑'6∞EDε>Om≥f:ε≡Dε
Q.&␈.lLV"π=}Vv"eebHh!Q%↔/>1PRjUURjjQQ hPv&R∧}>DβKε∀β≠FUU¬≥A↔D=∀Y→d-∪a→vv*
]w⊗*∞MεNvw!PU&w$π≡↑L]⊗rε≡D¬-≤5Y∃≤L!Q&≡≠$w⊗.→hU⊂h!Q$Jε≥N6zεM≤B∧tzDπ≡∂lT∧6NlHfrr∧	⊗2πMW≡*≡&*εn]f∨&≥⎇g~π≥}Rπ/<Tπ>OM∧ε?⊗\≡Bε7,↑↔..l?⊂hW≥}Rε≡≥dπ∨&},Rπ&]Rε}d∞6}nT6.wN,⊗b∧8$w~ε≡>6}≡≤≡F."	I∃≥αm⊗f+4∞6zπMWJπ⎇≥F`h,,Rεf|≤F."
≥bε.≤=απ&≥\RπN}Tε.wL↑"ε

)Dbπ<↑7≡N⎇ebααλ]↔&F↑$π&F≡Dε␈∩=vw6≥l6*ε\QPW&←∩π≡↑.f*π=⎇V*ε\≥&␈∩nVv∨M≥vrεl\V&.D
⊗rε|]f/⊗≥EbHh!~FF∂D}2ε∞MDε6␈$
f␈:aQ%↔/>1PRjUURjjQQ hPv&b∧}>DβKε∀β+FuU¬≥A↔D=∀Y→d-∪a_F.f∨≡2bεL]F∂O5Dε&.L∨↔~reaPU&w$π≡↑L]⊗rε≡D¬-≤5Y∃≤L!Q&≡≠$w⊗.≥lW⊂h!Q%≡}\↑vF/,Tε⊗/N|V.r∞>ε}}d⊗v"
M↔ααeebπ&Tε≡F≥lv/~	∀εn∞LTπ&zλi∀,dEi4∩ε≡f*Q,FO≡≡∞ε.∂,\B
α∧	∩εn]nFN}l\Bπ&≡B∧d~:απ>≡4ε∞∨M≥f:εn]fwJ∞Mε/≡T
F∂∨Df/:L↔O≠1Q&∂π≡&.wMO∩π&
≡2εO4⊗rε⎇LBπε}LVw&≤≥FgJ\.V>?∀∞f/↔=≥vrb	<VO&∧
f␈:∞LVfg4
V*pQ(⊗wO|∨∩b∧∀
f␈:
=f␈:

w:πMtπ/≡T∞FF*
]w⊗*∞,V≡.nDπ6/.=⊗}rD⊗v"∞⎇⊗fbMrπ≡uaPPh(mw∩εm}rb∧∀∞vNfD
$-%)_U4*
←∩εf≡>Bπ6↑.6N}dg⊗}T&∞≡4∞WαπL≡ε*b≥f"π<\RεF}tεo.=↓PW&≡BεNl=G.&↑5bα∧}.'∩reaPPh(≥gO>∨∃Bπ&Tε∞w>|W∩πMtπN␈↑$α↔>]cz∩∞≡V/∨M≥vrπ,]V∞Nn5B∧J≤g⊗∞≤EBα↔=⎇vr∩aQ hU.↑7_h%URjjUUPhPQ!PP∂ 1 Nov 1981 1241-PST	<GREINER>	Come and get it!
To: sklein at USC-ISIB
cc: greiNER

Finally, at long last, Glory-Be!  The various files on <GREINER.RLL> and
<GREINER.CORLL> are now at your disposal.  Hurry and gobble them up before
I decide to make a simplE, innocuous change...

Still no guarantees that↓KmKeeiQS]≤OYXA]←eVA]QK\Ae←jAiIrASh0AEkh↓∩AIS⊂ABAg5CYX~)C[←k9hA←L↓KqaKIS[K]QCiS←8AC]H↓KmKeeiQS]≤AEKQ¬mKHA¬fAIKMSeKH8~∀~∃%ggkKLt@A+∧[∂)A%∨ A⊃SI\OPAo←e,ABAM∃nAiS5Kf\@↓qC[%]S]N↓ShAg!←oKH↓BAOY¬eS]N4∃Kee=dA	CYJA[C⊃JA[←9iQfA¬O↑Ao!SGPX↓k]iS0AEk[AS]NA]←eWK⊂AG←eIKGiYdXAUkMh~∃]∃mKdA!CaaK9KHAi<AQCaAK\\@Q¬Cg%GCYYdAiQKIJOfA¬\AS]QKemC0AS\AUα[∂PAEKi]KK\~)oQK\↓iQJA
←]iK9ifA←_AiQJ↓k]Sh↓QCmJ↓EKK\↓eKCH↓S\XA¬]HAg=[JAM%KYHA=LAiQ∀~∃k]%hOfA=mKeQ∃CHAgQekGiUeJASLAgKh↓oQSG ASfA9∨(AS8ABAGISiSG¬XAeK≥S←\\A≥←n↓iQCh4∃Ek[AS]NA!CaaK9fA[←IJA←MQK\XA∧Ak]SPAUkgPAEKS9NAeK¬HAS\↓[SOQPAEJAMoCaa∃HA←kP\~∃)!SfAG¬kgKf↓iQJAU]ShOLAmCYUJAi↑↓EJA≥%_XAG¬kgS]≤AB@EQesS]≤Ai↑AI!→βπ∧A≥∪_λAKee=d\~∃QQJAM¬GhAi!ChAi!SfA]∃mKdA!CaaK9KHAE∃M←eJ↓SfAS5aeKgMSmJ\$@Aβ]eoCrX↓∩AiQ%]V~∃$AMSq∃HAiQ%fAae=EYKZ8@@Q	UeS]N↓iQCh↓MSpA$AM←k9HAiQ¬hA	CYJOfAU [≥∨	+≠ A¬Yg↑~)QCfA¬\A←EYS←kf↓[Sgi¬WJtA%hAkg∃HABAA%∨∞d↓eCiQ∃dAiQ¬\ABAA%∨∞b8@A)Q¬hAi←<~∃QCLAEKK8AMSq∃H\R@↓)QJA5←eCX↓QKeJ↓SfAi!ChAπ=%→_A5CrAE∀A[kG AQ←Y∀[SKd↓iQC\↓∩~∃i!←kOQPvAC]⊂AiQCPAoJAMQ←kY⊂AEJA
CeKMUXAoQ∃\AeKACSeS9NAShZZAUUghAE∃GCkg∀~∃Sh≥fAo←IWKHA→←dAcUSiJA∧AoQS1JAI←∃g\Oh↓[KC\↓CYXA=LASiLAEkOLACeJ↓←kh\4∀QgAKGSC1YrAo!K\Ai!JAKeI←dAY%KfAS8AiQS9OfAY%WJA≠¬π%∨f0AoQS
PAQCYK\Oh↓EKK\4∃eKC1YrAkMKHAM=dAK←9f\R~(~∃∨L↓G←keMJAiQ∀AgC[∀ASfAQekJA→←dA%1_ACf↓oKYX0AS\AMaCIKL\@A¬UhAs←TAW]←\AiQCP\~∀~)≥KqhhAk]i%XAiQ=gJ@←Aki-C1kJX@8\\AMU]GiS=]fACIJAI←9JA∩A≥kKgf↓∩OYX↓gK]H4∃s←j↓[rAIISEEY∀AMSY∃f}@AQQJA←QQKdAA←ggS	SYSidASfA→←dAs=jAi↑↓WKK`↓s←kd4∃IKYQCfAe∃G←eI∃HAg←5KoQKIJXAC1Y←oS9NAs←TAi↑AMS[aYdAg]CILAiQ∀A]KqPA%→_↓eKYK¬gJX~)iQK\↓ek\Ae←jAS9GeK[∃]ifAQ↑ASh8@A∨d↓SfAi!KeJAM←[JA=iQKd↓a←gg%EYSid}~∀~)≠rAC≥K]IBhAiQJ↓iS[J↓QCfA
←[JAQ↑AOKPA≠βπI∨fAi<Ao←e,\\\AQQJAaI←a←eQS←\A=L~∃[dA%→_↓iS[J↓gaK]PAiKe5S]CX↓oCiG!S]NAICiQKHAiQC8AG←I%]NASLA]←\5ieSm%CX\~)¬KgS⊃KfASPOfAi%[JAi<A[CW∀AO←←⊂A[rA
YCSZ↓iQCh↓iQSf↓SfAC	←khAQ↑Ao←IV\\\4∃∩AI%HAoC9hAs←TAi↑A!CmJA∧Ao←e-S]NAMsgiK4AMSeMhXAi!←kOP8~∀~∀4ZZZZ4∃β]s]CrXA!←nOe∀AiQS9OfAS8AOK]∃eCXAQQKeJ|@A≥←PA[kG AQKe∀XAEKMSIKf↓BAeK
K]h@4∃eCg A←LA5←kiP↓g←eKL\@@QQQSfA!CaaK9fAgKYKeCX↓iS[KLABAs∃CdXA→←dA[egiKe%←kf~)C]HAU]aeK⊃SGiC	YJ@QQ↑A[J↓ChAY∃CghR↓eKCg=]f\RA)QKMSfASLAg←eQBACIYC]GS9Nv~∃IC]HOLAgik→LAQCLAEKK8AeKY∃OCiK⊂Ai↑AQQJAE=ii←Z↓←LAi!JAgi¬GV@Z4AKmK8~∃EK1←nAe∃GeKCQS←]C0AeKC⊃S]NtA∩OZ↓MS]C1YrAM%]SgQ%]NAk@ABAE=←VA∩↓giCeQKH~∃=mKdA∧AsKCHACO↑h@EπQ%[KeBλAErA)←Q\A	CeiP8@@O)%fAck%iJAO=←H\~(ZZZZ4~∃∨]Q↑A[C
e←fB↓πQCe≥J\\\4∀∪%kMf~∀Z4ZZZZ4~∀ZZ4ZZZZ4∀~∀≡fA≥←X@brpD@bpdH[!'($y'↔→∃∪≤ACPA+'ε5∪'∪∧x∪%Jt↓π←[J↓C]HA≥KhASPB~∃)<tA∂%∃∪≥$↓ChA%¬≥λ[β$~∀~∃¬YoCsLAIKY¬sf\\9←kdA
←]gk1iC]h↓Me←Z↓βkgiICYSB↓gQ←o∃HAk`↓M←dA∧AoKK,A←dAQo↑X~)g↑Ai!S]Of↓QCmJ↓EKK\↓[←eJ↓QKGi%FAiQ¬\AkgUCX\@↓∩OYX↓g]Ce_A←mKHAiQJ↓MekSQf~∃←_As←kHAYCE=dACMQKdA∩↓MS]SMPAiQ%fA[g≤\@A'∃K[fA∃CgSKMhAi↑↓Ukgh↓OeCD↓]Kn~)mKeg%←]fAU]iSX↓iQJAIKG←e⊃S]NAMikML↓SfAI=]J\@↓≠rAa1C]fA¬eJAi<Aier↓gikM→S]N~)iQS]≥fAS\↓←mKd↓iQJA9KqhAQo↑Ao∃KWfA=dAg↑8@A'Q=kYHA¬Yg↑A≥KhAg=[JAm∃egS←8A←L~)iQJ@=M]fA⊃←]JA=mKdAQQJAg¬[JAgAC\\@↓⊃←aK→kYYr↓iQKe∀Ao←\≥hAEJ↓C]rA!SiGQ∃f~∀Q!BRAg%]GJA	SYXA%fABA	ShAe∃YkGi¬]hAM=dA[JQ←dA¬]s←]∀RAi↑↓OKh@	gSIKQeCGW∃HD\~)∩OYX↓Q←`A=\AiQ∀AaQ←9JAM←IiPAQ¬giJA%LA∩AMKJAC9siQS9NAgiIC]OJ↓O←S]≤A←\\4∀~∃∩=oJ@QACeK]QfRAaUhAS\↓BAES⊂A←\A∧AQ←kMJAS\↓/←←I1C]HA!SYYf↓BAMK\AICsLACO↑8\\~∃MQCYX↓gKJA]QKiQ∃dAC]eiQS]≤AkgK→kXAG=[KfA=LASh8@A∩AQQS]V↓∩AeK¬HA[r↓MSegPAieCMP~∃]=mKXA%\ACE=kh@p↓[←]i!fAsKMiKeI¬r\\]]CfAaI←ECE1rAEK
CkgJ↓∩AIS⊃\OhA]C]hAQ↑AI↑4∃C]r↓o←eV0AeCi!KdAi!C\AKaieBA¬mCSY¬EYJAQS[J\A∩Om∀AEKK8A←gG%YYCi%]NAS8~∃gK5R[Mk1X←gK5R[aCIiiS[∀Agik⊃K]hAMiCikLAChA%'∩AM=dABA]QSYJ0AoSY0Aae←	CEYr↓O↑A←8~∃eK¬X[gi¬ikf@ zAgi¬MLRAM←←\\A∩Ai!S]VA$OZ@EMKiiS9NACg%IJDAUπ→αA→←dAi!JA]K¬d~∃MUikeJ8@A≥←\AG←[∃fAiQ∀AMk\↓aCeh↓←LAQ¬OOYS9NA←m∃dAgC1CerX↓KiF\4[EKCQfA[J↓oQCh↓∩~∃g!←kYH↓CgVA→←d@↑↓KqaK
h\\\4∀~∃¬1KK`[⊃KK`\4∀ZZZ4ZZZ~(ZZZZ4ZZ~∀4∀_≡`l5≥←lZ`b@@b\b`∪'QKmJA-YKS\y'↔→∃∪≤ACPA+'ε5∪'∪∧x@∪Q[4\\\~(~∃%kMfZZ@4∃∂eK∃if\@↓∩AgK∃ZAi↑↓EJAQ¬mS]N↓BAae=EYKZ↓S\AEIS]OS9NAk`↓BA]K\A%→_8@A¬e%KMYr0A∩~∃
C\@QMKK[S9OYrR↓[CWJ↓BAπ∨I→_Ageg←kh↓MS]J0AEkh↓S\AKaKGki%]NA'Qβ%(X↓iQS]≥fAGe=CV~∃	KM←e∀AOKiQS]NAYKerA→Cd\@↓)QJA]Ce]S9NAS\↓+`[!UhbAO∃ifAC
iSmCQKH\@↓∨\Ai!JAMSIgh~∃QS[JAQQe←k≥PAiQ∀ACIm%GJAi<A+ [A+(ASLAEKS9NAeK5←mKHQ∩AG!KGWK⊂RXAEUhA'∨5⊃∨.4∃iQCPAgC[∀ACIm%GJASLAEKS9NAkg∃HACO¬S\@Q¬]HA+@[!khDASfA
CYYK⊂ABAg∃G←]H↓iS[J$\~∃∪_A∩AY=CHAS8AC\A=→λAG=arA←_A+ [A+(XAQQJAaI←EYK4AI←KM\OhA=GGkd8@A∩AQeSKH↓i↑~∃1←CHA∧A]Kn↓G←arQMe←4Aπ∨%1_\\fH`RAEUhAOKPA≥λ↓∨A
%→
AKIe←ef8\]I↑↓s←jA≥KhAC9r~∃←_AiQKMJ@↑A-]←nA=HAg←5KiQS9NAiQ¬hA[S≥QhAQ¬mJAO=]JAoI←]N}4∃'iKYJ\~∀4ZZZZ4Z~∀~(≡@nA9←l@bdpb@d@jf[!M(∩y∂I∪≥H|∪π∨I→_~∃Q↑tAg-YKS\↓ChA+Mε[∪'%∧~∃GtAOe∃S≥$4∀~∃3∃BXAiUe]fA=khA[dAπ∨%1_AQKIJAoCLAEe←-K\AC1g↑\\8A∩AUUghA]∃mKdA≥←hAi<AB~∃	k[`X↓C]HAM↑AIS⊃\OhA9←iSG∀X@A∪PACaa∃CefAQQChA1∪' A	kOOKIKHASPAS\AM←[J~)eKCY1rAMk9]rAo¬rXACLACYX↓←LAi!JAaCIK]iQ∃gKfA5CiGP↓CfAE∃ghA∩↓GC\AQKYX\4∀~∃β9soCr0AkgS9NA≠¬π&XA¬]HA%∃βλXAIβ)∨~0AC]H↓eJ[→=β	S]≤AiQJ↓MSYJ0A∩AI%H~∃[¬]COJ↓i↑AG=]gieUGh@Q]QChA$AiQS9VASf$ABAo=eWS]≤AmKeMS←\A=LAπ∨I→_\\↓C]H~)π∨%→0]π∨~8@Aβh↓YKCgPAiQJ↓¬+≠ ↓ae←E1KZAI=Kg\OPACaa∃CdAo%iPASPXAC]⊂ACYX4∃←LAQQJAMU]GiS=]fACAaKCd↓i↑AE∀AaeKMK]h\@Q3KLXA[r↓MS]O∃efACIJAS]⊃KKHA
e←gg∃H\R~(Q¬rAQQJAo¬rXA∩↓iQ←k≥QhAi!JA=∃LAS\AQQJAM%YJAo∃eJAi!JAGk1aeSiLXAEkPAiQCPOf~∃¬aaCe∃]iYr↓]←hAQQJAG¬gJ\\8AShA¬YXAo=eWfA9←nXA∃mK\A]SiPAQQKZ\$~∀~∃¬fA%C9H[βR↓oSYX↓EJAI=o\AC1XAICdAi←[=ee←n0A∩Ai=←VAi!JAYS	Keir↓←LAI∃a←gSQS]N~)iQ←g∀AG←eIKGiK⊂AmKeMS←]f↓←mKdonto ISIB.  Enjoy.

Two side (EMACS) questions:
EMACS does have a command for finding the balancing parethesis,
counting "(" and ")"s.  Is there any way to teach it about "[" and "]"s?
Better, how hard would it be to write a little macro which did the conversion?

Next: how does one go about scanning for ↑Js?  Typing ↑S↑Q↑J is not sufficient:
this seems to locate carriage returns (or something like that.)
Typing another ↑J at this point DOES seem to work.  Why?  Am I really telling
EMACS to scan for any <CR>↑J ?  Note ↑S↑J only finds the <CR>s, I think.

Going on, how do I replace ↑J with ""?  <esc>%↑Q↑Q↑Q↑J<esc><esc>  found only
one, then stopped.  
---- These aren't big things, just idle curiousity, of course. ----

Good luck on house-buying.  Hi-oh-Thesis, away...
	Russ
-------

∂ 8 Nov 1981 1644-PST	<GREINER>	Minor bug
To: sklein at USC-ISIB
cc: greiNER

It appears EVALV works in funny ways -- or at least in some manner which
I don't understand.  Anyway, the ChangedFn function will, on occasion,
not work because (EVALV KBfns) returns NIL rather than the list it should.
Anyway, you've been warned.  (The effect is variables like RLLFNS get
reset to be a singleton list, confusing the LOADFNS routines (called by
EDITF) no end.)  Next iteration will have a safer, if slower, EVAL.

Back to macro-izing.
	Russ
-------

∂ 9 Nov 1981 1652-PST	<SKLEIN at USC-ISIB>	problem resolved
To: Greiner at RAND-AI

Hi.  Problem with missing InOther was a bit more drastic than either of
us assumed, but easier to fix.  Turns out to be due to file versions.
I snarfed over your new files with the retain option, however, the newest
version of RLL.. had a lower version number than the version I had from
the previous time, so that older version was the one that got loaded in.
We have found it beneficial (not to seem prescriptive) to keep com file
versions the same as that of their symbolic source...thus this generally
doesn't happen.  If you think that might be useful, I won't complain, otherwise
I'll just be more careful in bringing stuff over...
-------

∂10 Nov 1981 1801-PST	<CSD.GREINER at SU-SCORE>	Macros, etc
To: sklein at USC-ISIB
cc: greiner at RAND-AI

Steve -

Well, here's the description I promised.  Consider the function
(DEFINEQ (FOO  (x) 
	...  (GetValue x 'AllIsas '(SAFESLOT)) ... ))

As FOO is compiled, the GetValue macro expands.  The macro is pretty simple:
Unless the slot (ie its second argument) is quoted, nothing happens.
(IE the macro returns IGNOREMACRO.)
Otherwise the macro looks up the value of that slot's ToGetValue --
in this case DefaultActualGetValue = AllIsas:ToGetValue.
This value is then substituted for the original GetValue call -- hence the
compiled FOO looks like

(DEFINEQ (FOO  (x) 
	...  (DefaultActualGetValue x 'AllIsas '(SAFESLOT)) ... ))

The work is not done yet -- we have to record that the value of
AllIsas:ToGetValue has been used.  This is stored on the GetValue unit,
on its MacroUsedIn slot.  (See the MarkMacroUse function.  Advise to
COMPILE1 is used to pass the (name of the) function being compiled.)

Suppose we new reset AllIsas:ToGetValue.  The existing mechanism, used for
doing the standard KB modifications when any slot's value is changed,
is to execute the KBUpdates slot of affected slot, here ToGetValue.
I'll describe that function's creation in a moment.  The salient feature,
at this point, is that it knows to go to the GetValue:MacrosUsedIn value,
which stores those functions which used AllIsas:ToGetValue.  Each of those
functions is "invalidated".  This is pretty straightforward: if the function
is currently compiled code, (ie if CCODEP(fn) is nonNIL,) its source code
replaces that functional definition (using LOADFNS).  If it is currently
"loaded" but not compiled, nothing is done.   Otherwise the name of this
function is stored on a global variable, ToBeUnCompiledFns.

(Advise to LOAD will use that variable: LOAD will now recompile any
function which is on that list before "admitting" it into the working system.)

----
Before embellishing this macro description, I wanted to elaborate this
KBUpdates slot.  In particular, nothing new had to be added to its definition:
The only change was on TypIcalLISPFn:FnForInvalidating and 
TypicalLISPFn:ToInvalidateValue, which GetValue will "inherit".

Nuts and bolts: The KBUpdates function will, of course, be given a
bunch of arguments, including the name of the slot which was alterred
(here ToGetValue), on which unit (here AllIsas), the function whose
macro should now be invalidated: GetValue, and the function in which
this macro was expanded - FOO.
Anyway, as KBUpdates:ToCompute shows, x:KBUpdates is generated using each
of the functions which use the cached value of ToGetValue -- listing the
value of each of their (respective) FnForInvalidating (?) slots.
Anyway, GetValue is on ToGetValue:CVUsedBy, and so the processing which
constructs this ToGetValue:KBUpdates will know to generate which,
in this case, invalidates FOO.
<pause to catch breath>

----
There are, of course, similar macros for PutValue, AddValue, DeleteValue 
and SubstValue.
Eventually I'll macro-ize the various get-value functions 
(respectively putting-value functions) -- so
DefaultActualGetValue, PrimGetValue, etc., will be able to using things
like the Format of the slot used, or it ToCacheValue value.
As with ToGetValue, if ever s:Format is changed, the compiled version, 
which relied on that value, will
be thrown out, and the still accurate source code will take over.

The value of x:MacrosUsedIn, by the way, is of the form
	( ... (access-slot (slot1 fn1 fn2 ...) (slot2 fnN ...)) ...)
eg the value of GetValue:MacrosUsedIn, after FOO was compiled, is
	( (ToGetValue (AllIsas FOO)) ).

----
Remaining problems:

What if FOO is editted, and the call to (GetValue x 'AllIsas ...) is removed?
How do I know to go to the GetValue unit, and adjust its MacrosUsedIn slot?
The obvious possibility is to throw out all record of FOO's embedded 
macros each time FOO is compiled -- assuming they are re-inserted as 
needed during the GetValue-macro-expansion.
The problem with this is how to store these inverse links.  Certainly if
each such function is a macro we could establish a contain-macro slot,
containing comparable information to the MacrosUsedIn value.
However few of the functions have yet been unitized.  Perhaps this provides
the incentive to do that?

Anyway, the current implementation makes the fallacious claim that
"once a macro is defined in a function, it will always be present".
Eventually I'll fix this up.

Another problem is how to maintain that ToBeUnCompiledFns variable across
systems -- what if you get the list from my current system (included in
my UTIL file), but not the corresponding units -- in LISPFNS.KB?
One possible solution involves storing the list of to-be-invalidated
functions (eg FOO, if FOO wasn't around when AllIsas:ToGetValue was changed,)
on the unit representing the macro - here GetValue.  This would slow down
loading -- as a pre-processing step would have to first walk thru each
of these macro-units assembling the ToBeUnCompiledFns list.
Argh...


The final worry I have is actually a problem which (I realize now) might
erupt in other places as well.  It deals with "race conditions".
After we change, say AllIsas:ToGetValue, it'll take a while before
the various functions are actually updated.  Until then, they are
still using that old value.  What if one of these functions was in fact
used in computing KBUpdates, or some other application.  
This probably won't be much of a problem, as there are only a handful
of such functions.  

A related worry returns to Garden-of-Eden considerations:  We can
now define the GetValue function as
(LAMBDA (un sl ot) (APPLY* (GetValue sl 'ToGetValue '(SAFESLOT))
			   un sl ot)),
sorta.  When compiled, that GetValue will "expand" into GetAccessFn
(as that's the value of ToGetValue:ToGetValue).  So the compiled
version of this function works perfectly -- it's the source code
which will infinite-loop.  Now suppose someone was silly enough to
alter ToGetValue:ToGetValue.  One side effect would be to "invalidate"
the GetValue function -- rendering it inoperative (in the worst possible
way).  Of course one could define invalidation as recompiling-the-source-code.
This still does not totally solve the problem: recall that some GetValue's
occur during the compilation -- look at the GetValue macro, and that 
MarkMacroUse function.  If these calls are interpreted, we're in trouble.
(Of course we might have to compile them, and then insist that at all
times at least one of {it, GetValue} be compiled.  What a hassle...
A simpler solution might be to insist that ToGetValue have its own associated
functions - like KBUpdates, which do special things.  These are just things
to keep you awake late at night.
(By the way, a vaguely similar logic forces us to keep Unitp compiled --
run interpretively it calls a macro, which in turn invokes the FAULTEVAL
function, which (thru RLL's hack to the interpreter) calls Unitp, and so
we go.)

Fortunately, I don't think such updates will be very common; making 
inter-system incompatibilities yet ever rarer.  Just things to think
about.


-----
-----
Other things:
1) I keep getting a BLKAPPLY error during calls to MAPHASHFILE, within
UA-LIST and CompressMe? (and more recently, within UF-COPY).  I've just
REEVAL UA-LIST T (or whatever function) out of it, and continues this
until it runs to completion.  I've no idea what causes it; and may one
day look into it.  Bletch.

2) Is there anyway of making GLOBALVARS statements "permanent"?  
It seems that when I compile UTIL, the compiler has forgotten about
the Global declarations made in CORLL, for example.  Perhaps I need
a LOADCOMP statement, in some DO@COMPILE?  Ideas?

3) I found Doug's code for "quiet" compiling.  Turns out it uses COMPILE1,
plus only a few variables.  I'll send you the code if you're interested.

4) Thanks for BKSYSBUF (or whatever).  CORLLINIT now uses it.

----
Time to go home,
	Russ
-------
-------

∂12-Nov-81  1515	Steve Klein <SKLEIN at USC-ISIB> 	oozing onwards  
∂TO SKLEIN 14:08 14-Nov-81
Slurp, slurp
Steve -
(I intersperced(sp) my suggestions in amongst your questions.)
    Hi.  Waz nu?  Some minor questions... What was your fix to UA-GETPROP so it
    didn't blowup occasionally?  
I didn't change UA-GETPROP.
The bug I removed was from UA-GET -- it's RPLACs are now in
a critical region, where they belong.
Beyond that I don't know why UA-GETPROP blows up.
Nothing in UA-GETPROP does a RPLAC on that unit.
    Still seems to, and effectively consists of a
    LISTGET of a UA-GET, hence what keeps the unit from evaporating between the
    calls?  
I don't understand.  So what if a unit is paged out, the value of UA-GET
should still be that plist...
    Also, in general, what keeps the result of a unit access from 
    evaporating when the unit is paged out if that result is non-atomic?
The RPLAC is on the PList, not on the value of a given slot.  The only funny
case will when there are currently no properties; and I think that is handled
correctly.
    Also, it seems that creating a new user unit doesn't quite work...something
    in the process of initializing the unit decides that the user doesn't exist
    and so starts the process over again.  Of course, saying no to the second
    attempt makes things work (I think), but doesn't look very nice.
Huh?  I need more details... What doesn't work? when, where, ...
I tried creating a new SteveKlein unit, from WhoIsUser; and everything
worked perfectly.
    I would like to make an initial stab at ordering the slots of each unit at
    printout...the first thought that comes to mind is a three-way partition
    of slots into Primitive, Computable, and Syntactic (printed in that order).
    The current problems I see with that are as follows:

      -  not totally satisbactory (but ok for now, unless you see something better)
      -  a bit harsh computationally unless something constructs a (temporary?) 
	   list of each type of slot...bleh.
      -  not exhaustive...for example, the unit FnForGetting  isa
	   AnyInheritableSlot, buT not Computable or Primitive...it would seem
	   to me that Computable and Primitive should span all slots: Inheritable,
	   Specializable, and whatever are independent axes.
Why not a mechanism like OrderFOpToInit, where everything which is a primitive
slot inheritq the value (I think) 20, inheritable slots about 50 and computable
slots, 70.  Any particular slot can override this defaulted value by storing
its own value.  Furthermore, if ever you create a new category of slots,
you can assign the default value for those slot's order-for-print by simply
storing that value in TypicalxxxSlot:OrderForPrint, or whatever.

The printer could then order the slots to be presented using these values.
A further embellishment would be to consider any negative value (for example) 
to mean "don't even print me".

    I'll keep on digesting and poking...let me know what you think.
Let me know what happens.

Just about nothing on the NEWs-front --
I'm still macro-ing; and should have this all tested soon.

	Russ
∂TO SKLEIN@ISIB (CC LENAT@PARC) 23:39 3-Dec
Salutations
Steve -
	What's happening there?  Haven't heard from you for a while...
and I refuse to believe it's because everything (or even, anything)
is working correctly...

	I've been thesising, and haven't done any RLL things for a few weeks
(?either?).  My status with Rand is tenuous -- in case the grapevine
hasn't passed along this information: Rick quit/was fired/left.  But
I'm talking with his replacement (Gary Martins), who may still want
me there now and again.  I did indicate a desire to work occasionally
(more like once a month than once a week).  We'll see.  As long I can
keep access to Rand-Ai.

	Hope everything's going well with you in general (esp wrt house
buying/hunting, and Sandy, etc.)  Let me know also about your hacking
status -- ie has RLL been abandoned to a "well it was a good idea but"
status, or what.

	Take care,
Russ

∂04-Dec-81  1133	Steve Klein <SKLEIN at USC-ISIB> 	Re: Salutations      
To: RDG at SU-AI

Hi.  Congrats on your thesis coming along (looking at things that way you
might be able to find advantages to current Rand turmoil...).  No, we haven't
abandoned RLL, but rather a hefty dose of visitor-types has caused other
things (like keeping the current level of our system healthy and growing) to
be pushed to the fore...I usually get the dirty work.  Additionally, I managed
to (finally) get the current version of worhd-wide plague which effectively
killed things for a week (until today).  Disgusting...amazingly hard to get
anything done.  Since the MAJOR Stumbling block in our plans is the state of
our KR, pushing on RLL has been repromoted to the top of the heap.  Hopefully,
the number of diversions in the next month will be VERY small so I can
actually accomplish something.  I'll let you know of the real state in a few
days when I get back up to speed again...  The world is otherwise going
normally (locally, that is...the rest of the world is obviously going to
shit).  I hope to be done with house stuff quite quickly, mainly because it
seems tk be getting very boring.  Heard any nasty Reagan jokes lately?  
Steve.
-------

∂TO SKLEIN@ISIB 12:01 22-Dec
Hola!  Que tal?
Steve -
	How're things going these days?  Housing, and Hanukahing, and hassling,
and harumphing, and ...  [those are helipses, of course]?  Any newnesses to
RLL from that end?  Questions/comments/threats?

	Note much happening here.  I gave copies of my thesis proposal to
several profs three weeks ago, and have been waiting for comments ever since.
Very frustrating; as I suspect they will suggest/enforce non-trivial modifications;
and I'd rather not have to undo a bunch of stuff done now (that is, prematurely).
So I've been reading philosophical this and thats.  yawn.

	Housemate Ben will be trekking there circa Xmas day.  Any messages for
him?  Like to guide him about ISI if he drops by?
By the way, an incomplete subset of his stats are 
	Ben Moszkowski
  (213) 477-2105 -- [Mother ?Leona?] ?, Los Angeles, CA 900??
  ?		 -- [Father] 2567 S. Barryton Ave, Los Angeles, CA  90064

----
Anyway, let me know what's happening.
	Russ

∂23-Dec-81  1659	Steve Klein <SKLEIN at USC-ISIB> 	murkiness  
To: RDG at SU-AI

Hi.  Don't give up...we're still alive here.  It never ceases to amaze
me how easy it is to be in continuous imminent crisis mode.  The latest
has been trying to use up the money remaining in this budget period
by buying a small VAX.  Each one of these things causes the amount of
time I get to devote to RLL to fluctuate wildly.  Believe it or not, it
is still looked on with favor hereabouts.  I'll give you a call on
Monday (assuming you will be there then) to discuss the list of questions
that I have been accumulating...
Steve.
-------

∂TO SKLEIN at USC-ISIB 16:52 24-Dec
Fire away
Ok.  I will be in Palo Alto this Monday.
I'm meandering south (to Costa Mesa) for a small part of the winter:
from 1-Jan thru 5-Jan. 
[Core reason: my father's getting married on the 3rd.]

Anyway, feel free to send a list of questions, if you want me to do any
pre-processing.  Talk with you soon,
	Russ

By the way, I took the liberty of cluttering up MANCOM.RLL will a few more files,
to facilitate my eavesdropping.
∂TO SKLEIN@ISIB 16:24 29-Dec-81
How to enforce restrictions of ranges on sub-units:
Example:  Suppose we have 

Cost
   Isa:			(AnyComplexSlot)
   RangeType:		(FSingleton (IntegerType (*R 0 100)))
   MakesSenseFor:	(TypicalPhysicalObject)

that is, the value of U:Cost will be a single value which can range
from 0 to 100.  (Later we will further complicate this...)

Wanting to restrict the allowed cost for ships, we create 

CostOfTypicalShip
   MyLivesInSlot:	Cost
   MyLivesInUnit:	TypicalShip
   RangeType:		(FSingleton (IntegerType (*R 15 82)))

All well and good.  Given Ship#47 which Isa AnyShip, 
	(PutValue 'Ship#47 'Cost 13)
will blow-up:
It will call Cost:BeforePutValue, which will (eventually) call
ComplexBPV (because Cost is a complex slot).  
This, in turn, knows to check the OrderedPrototypes of Ship#47,
seeing if any of them has information to use -- ie if, for any 
u in Ship#47:OrderedPrototypes, there is a field u:Cost:VerifyValue.
And indeed there is -- the RangeType of CostOfTypicalShip is sufficient
to produce a CostOfTypicalShip:VerifyValue.  This function will reject
the value 13; causing the overall PutValue will fail.  (Yea!)

So far nothing new.  The problem is that nothing checks that
CostOfTypicalShip:RangeType bears any relation to Cost:RangeType.
For example, nothing prevents us from putting something like
	(FListN (UnitType (*P AnyFrog)) BooleanType)
on that slot's value.
So here's the problem: what should check that the value of
CostOfTypicalShip:RangeType is a restriction of Cost:RangeType, and how?

Well, what checks the value of a slot in general?  By convention, the
value of U:S is verified by S:VerifyValue -- hence we have to elaborate
RangeType:VerifyType.  
This (distributed) function should do one of two things:
If the unit involved is a subunit, as CostOfTypicalShip is, it should
do some complex checking, to insure that this current value is indeed
a restriction -- more on this in a moment.  Otherwise, it should just
do whatever it now does.

Turns out this is very easy to implement, thanks to our sub-unit friends.
The trick is to make VerifyValue a complex slot (if it's not already);
and to store that complicated stuff on TypicalSubUnit:RangeType:VerifyValue
(that is, on the VerifyValue slot of the RangeTypeOfTypicalSubUnit subunit).

Now when verifying the value of RangeType for a given unit,
ComplexBPV will be called, and given the unit, u [here, CostOfTypicalShip],
among other things.
It will try to find the VerifyValue FIELD of some v:RangeType subunit, where
v is a prototype of u.
Hence, to find the VerifyValue associated with CostOfTypicalShip:RangeType,
it will (eventually) see if TypicalSubUnit has a RangeType subunit
on which a VerifyValue has been stored.
So storing that complicated stuff here will mean that this procedure will be
called to check the value stored into the RangeType of any subunit.

Note that, for general non-subunit units, no such field will intercept
ComplexBPV on its quest for u:RangeType:VerifyValue, which means it will
return the value of RangeType:VerifyValue, which is the current "default" value;
as desired.

That's half the battle.  Now to decide what to stash on
TypicalSubUnit:VerifyValue.  This function will take a few args, among
them the unit -- here CostOfTypicalShip.  It's now pretty straightforward
to find the units which this should Be a restriction of -- here Cost.
(In general those units will include NOT ONLY the value of u:MyLivesInSlot,
but any members of u:MyLivesInUnit (here TypicalShip) 's SuperTypEx's.
We'll discuss this more general case a bit later.)

The trick now is to find what things can be a restriction of a range
specification.  The answer is to let the specification itself decide:
Define a new slot, such as SuperSpecFn.  The value of FSingleton:SuperSpecFn
will a function, FS:SSF, which takes n arguments, and returns T if the first
argument is a restriction of the remaining n-1.
In this case FS:SSF will take (FSingleton (IntegerType (*R 15 82))) for
its first argument, and (FSingleton (IntegerType (*R 0 100))) for its second.

Noting that these formats match, FS:SSF will check that (IntegerType (*R 15 82))
is a restriction of (IntegerType (*R 0 100)).  It does this by calling
the SuperSpecFn of the datatype IntegerType, IT:SSF.  This function, again,
takes n arguments, and returns T if the first is indeed a restriction of
the other.  Here, it sees the args (IntegerType (*R 15 82)) and 
(IntegerType (*R 15 82)).  IT:SSF observes that the datatypes match,
and now needs to see whether (*R 15 82) is a subrange of (*R 0 100).
Needless to say, it now calls *R:SuperSpecFn, and hands it 
(*R 15 82) and (*R 0 100).  Finally an end to the recurring.  This
function notes that the range-specs (*R and *R) match, and so checks
the args - and as 15≥0 and 82≤100, *R:SSF returns T.
This affirmation is propogated up the calls, and (eventually) is used to
indicate that 
	(FSingleton (IntegerType (*R 15 82)))
is a restriction of
	(FSingleton (IntegerType (*R 0 100))),
and so this value is approved by the function stored on TypicalSubUnit:VerifyValue.
HallelUjah!

---- Pause here for a moment -----

This was all rather straightforward.  Now to complicate the picture, with some
notes and embellishments.

0.  The term "restriction" need NOT refer to a PROPER restriction.
That is, x is always a restpiction of x.

1. As mentioned above, a given RangeType may have to be arestriction of
a number of "superordinate" ranges.  Fop example, spsE ships were both big objects
and water objects, And each of these had something to say about the cost of
its examples.  That is, (using the standard naming conventions)

AnyShip
  Isa:			(AnyClass)
  SuperClasses:		(AnyBigObject AnyAquaticMbject)
  TypicalExample:	TypicalShip

TypicalBigObject
  Cost:			(*Do* FSeeUnit CostOfTypicalBigObject)

TypicalAquaticObject
  Cost:			(*Do* FSeeUnit CostOfTypicalAquaticObject)

CostOfTypicalBigObject
   RangeType:		(FSingleton (IntegerType (*R 50 100)))

CostOfTypicalAquaticObject
   RangeType:		(FSingleton (IntegerType (*R 11 85)))

	*** We now create ***

TypicalShip
  Cost:			(*Do* FSeeUnit CostOfTypicalShip)

	*** and then we try to ***
CostOfTypicalShip
   RangeType:		(FSingleton (IntegerType (*R 15 82)))

This should fail, as 
	(FSingleton (IntegerType (*R 15 82)))
is now required to be a restriction of both
	(FSingleton (IntegerType (*R 50 100)))
and
	(FSingleton (IntegerType (*R 11 85))).

Some obvious notes:
i) The range spec (FSingleton (IntegerType (*R 55 82))) would have passed.

ii) Realize we did not have to actually examine the Cost unit -- thanks to the
transitivity of the restriction relation.  In general, the only stipulation is
that the new range pass the requirement placed by each member, s, of its
immediate `superclass'.  A simplified version of this requirement is met by
examining each of the values (GetField s 'Cost 'RangeType).
This call will return either the value now stored in s:Cost:RangeType, 
(if it exists) or else is the superordinate restriction of this,
possibly up to the value of Cost:RangeType.

iii) Each of the *:SSF functions can be written by EVERYing along the
final n-1 args, applying an auxillary *:SSF-1 function, which takes only
a pair of args.  Of course this is just the quick and dirty solution --
in many cases this work could be shortcutted by, for example, first
intersecting those n-1 args, and seeing the first arg is a restriction of this.]

Next hassle: 
2. You may want (FSingleton x) to be a restriction of (FSet y).  It is
FS:SSF's job to permit (or prohibit) this.  

A convention:
Realizing that the CARs of the various range specs can vary, we have to decide
which unit to examine to determine whether one spec is a restriction of another 
-- that is, do we ask FSet what its restrictions are
(ie can (FSingleton x) be a restriction of (FSet y),)
or ask FSingleton for its "extensions" -- ie could
(FSet y) possibly be a generalization of (FSingleton x)?

Answer: Given that there may be any number of "extentions", and only one
proposed restriction, it makes sense to ask the single CAR of that restriction
for its criteria for extending.  Hence, FSingleton is responsible for deciding
what formats are legal extensions; and this information is contained in
FS:SSF.

Of course this still doesn't tell how to perform this function.
The quick and dirty solution is to simply enumerate the different
different formats in that function -- which means rewriting that function
as new formats are added - ugh.  Otherwise perhaps you could work from
"first principles" - by using the information associated with the format's
FormatCharacter.  

The same idea applies as you go merrily recurring down the specification:
Clearly IntegerType a restriction of NumberType -- and hence
IntegerType:SuperSpecFn should agree that (IntegerType x) is a restriction
of (NumberType y) for a large class of x's and y's.

The UnionDT and IntersectDT functions do something like this.
If I remember correctly those functions used some funny slot on each datatype
which was used to convert from one datatype to another.
Even then I hemmed-&-hawed through most of the real issues.
Let's see: there are also potential hassles with L-AND, and friends.  
Boy I'm glad it's you and not me whose tackling this.

3. I intentionally used the same slot, SuperSpecFn, for formats, datatypes, etc.
In all cases it did about the same thing -- ie it always held the function
which decided whether one specification was a restriction of some others.
I realize now that Formats, Datatypes and friends should have been more
blurred together, all along -- as the ready existence of this common slot
suggests.
¬
4. wrt caching the result of this computation -- don't.
That is, one could go from a range specification like 
	(FSingleton (IntegerType (*R 15 82)))
to a lambda expression, which returns T whenever its argument is
a restriction (resp extention) of this particular specification.
However, you'll never need to use this information.

-----
Well, that's all for now.  Send me a message if (better make that "when")
you find errors, or confusions, in this.

Russ

-----
Comments from Steve Klein on 14:00 7-Jan-82
VerifyAll, not VerifyValue
There is no *R!
∂TO SKLEIN@ISIB 13:25 8-Jan
Some comments
Steve

(1)	I realized this morning that the defn of *vaLue* is wrong.
The HighLevelDefn says to apply the MyLivesInSlot slot to the 
value of (GetValue un 'MyLivesInUnit).
That's close: it should, however, apply the function stored on un:MyLivesInSlot 
to that un:MyLivesInUnit value.  As there is currently no direct mechanism for
doing that, we could define a function  GetFromPointer,
which takes a unit, un, and returns (essentially)
	(APPLY* (GetValue un 'MyLivesInSlot) (APPLY* (GetValue un 'MyLivesInUnit)))

The GetFromPointer unit would include some useful facts -- it rangetype should be
something like
	(FSingleton (UnrestrictedType (*FromDomain GFP-Fn)))
where GFP-Fn would take a unit and return something like 
'(*FromDomain *vaLue*Fn).  [Or something like that -- see MapCross-Fn, or whatever.]

The idea is for *vaLue*:RangeType to be
	(FSingleton (UnrestrictedType (*FromDomain *vaLue*Fn)))
where *vaLue*Fn takes a unit and returns the rangetype of the MyLivesInSlot of
that unit.

(2) Doug needs a brief, 1 page description od what's going on there - for some
report or other.  It doesn't have to be prose, just enough for him to understand
what sort of things youse guys are doing, and why you are using RLL.

It might be interesting to see, in addition, your agenda of things needed,
and fixes made.  (Basicallp∩A→←dA[dAKIS→SGCi%←\\\8R~∀~(PfRA)kghA∧AeK[%]IKdhAπ←[AYKq-XA]←n↓GCYYL@Q∂KQ)CYk∀@}@OYKeSMeYK[∃]h@\8\Rv~)EkhAMQ←kY⊂AEJA
CYYS9NABA≥Ki
S∃YH@Z↓CfAi!JA-KISMsβ1XAiQ%]NAI=Kf\~(~∀Ph$AβhAM←[JAA←S]h↓∩AgQ=kYHAMK]HA=mKdAQQJA[¬Ge↑AMikML↓∩AQCYJAk`↓C]HAIk]]S9NAQKIJv~∃¬]HAi!JA]KahAECQGPA←_A→∪'@AMSY∃f\@A→e←ZAQQKeJ↓s←jA
←kYH↓QCmJ↓iQJA5←ghAUaICi∃H~∃m∃egS←8\~∀QU]iSX↓%C]H↓C]H←=dAiQ∃gSfAMikML↓M←eG∃fA[J↓ECGV↓i↑AQ¬GQKed\R~∀4∀PjR↓'←[J↓iQ←k≥QifA=\AcUCY
←I[Ci'AKFt~)∪hAo=kYHA	JABA1SghX↓oSiP↓KCGP↓[K[E∃dA←L↓iQJA→←eZt@PyM=e[Chx@yMk9GiS←8|R\~)7)QCPASfX↓ckC1
←e[¬i'aKu%C]≥K)sa∀@z@~(@@@@!
'KhQ
→SMi≤@QU]Si)eaJ@P) Aβ]e
←e[¬hRR~(∩∩@@!
k]GQS←])eaJ@P)%C]O∀@Q
→%gi≤AU]eKgQeSGi∃I)sa∀RRRR$]:~∃%L@QM5hdAM8dRAo¬fAS]
YkIK⊂A←\A→[hbu∃ckCY→←e[CQ'aKF then
if some value, val, was acceptable to fmt2, then (fn2 val) will qualify as
an instance of fmt1.  For example, FSet:EqualFormatSpec ==
      (	(FOrderedSet	IDENTITY)	; Any ordered set is already a set
	(FList		MKSET)		; this removed duplicated elements
	(FBag		MKSET)		; (removes duplicated elements)
	(FListN		Scream)		; could Be MKSET, but this is safer
	(FSingleton	LIST)	)	; ie this list qualifies*

*: actually the function FakeList should be used, where
(FakeList (v) (COND ((EQ v NoEntry) NoEntries) ((MustComputep v) v) (T (LIST v)))).

Given this, UnionDT and IntersectDT may be easiep to (re)wpite, as well as
SubSpecFn for formats.  No@QJASh↓akif↓iQJA→CGifQGY←MKdAi<RAoQ∃eJAi!KrAE∃Y←]N~∀ZZ↓←\A
MKhXA∃iF\X↓eCiQ∃dAiQ¬\AoSQQS\A∧AMKn↓Mk]GQS←]f8~∀~∃Qo↑AM%]CXA9←iKfh~∀QR$A
S]⊃S]N@!M[hd↓M\dR↓S]GYUIKHA=\AM[PbucUCY
←I[Ci'AKFAe∃gieS
ifAi!J~∃M8bAS\↓iQJ@!M[hb↓MTbR↓S]GYUIKHA=\AM[PducUCY
←I[Ci'AKF\@↓7≥←i∀AShA⊃←KfA9←h~∃
←[aY∃iKYr↓IKMS9JAiQ¬hAM\D]:~∀!SRRA∃mK]iUCYYr↓ShAo=kYHA	JA]S
JASL↓ckC1
←e[¬i'aKAG←k1HAEJ↓OK]KICiKH↓Me←Z4∀EMSIghAaIS]GSAYKfDZZAY=←WS]≤A←\AQQJAm¬eS←kLAM←e5ChOf↓
←e[¬iπQCICGiKH\~∀~(ZZZZ4∃)QCPOfAC1XAM←HA]←n8@A→KPA[JA-]←nA!←nAs=kdAo=eVAY=CHAI]S]IY∃fXAC9HAoQ∃iQKd=Q←n~)iQSf↓%→_A5CeeCMfQg`$Ao←e-f\@A$A[KC9IKeK⊂A←mKHAi↑A%'∪∧A1CghA9SOQh0AC]H↓MWk]⊂~∃iQ∀Agik→LAoJ↓ISHAU]gCmα+⊃¬↓F{Iβπ β3↔π∨!α%β≤{W3∪r;Qβ≠Ls⊃β'"I9↓hP4*#␈β∃βSFK;∨MεK∃β>{';≥ε{-04PJKWO_h(4({	E&+∞q5aIα↓E]Q@JOS↔6)α/3.K9↓r≤Z2⊗&rβπQα-~
6&≤J	iM∪∃iα≤¬vn*9vnn]nG
α∧∧hUMw"¬∀Htε∂"
:Rl⊃Q hT∀⎇FbεM⎇vJε}lW∩πMRε6≡.7"β⊗∧Rε}d∂⊗␈/$
W∨~d
F∂&↑%Bε↔↑DπN␈T↔⊗*∞-⊗>GD
vrπMRεf≡>@hW
⎇⊗w"d∧∧Jπ|≡2ε}d
WJπ|∨∩π&t∞FF*λ=vw∨]\W∩∧]LV∨'-⎇fN∨4
6F␈t
⊗r∧L≡2¬6\|↔~ε.↑7"Q,⊗7&↑$π&∞M=⊗v:∞MrπN}Tε∞vD
V∞v≤|V"πMtεf}⎇}W"π⎇≡FF␈↑Dπ≡∂m≥f:πMR¬∀IDεNn≤|Rπ>QQ'>/,Tπ>␈-=⊗v:
≥brαλ⎇v}"∞MεNvt∞FF∂D∞FF*N&N⊗-LRε6≥LRαG∞,W∨.\≤&gJ∀∞7&NMDε/F≡>G~pQ)W/↔
∂∩?~
L↔:π>N&N↑↑4ε∞>≥≥brraQ"jjUURjhQ!PP{⊗5TV∞eWβ∩αε⊗s∪ ~>F/6T	6f.≥dβe≤9HTLr≡B¬-85TM≤_'bO>NV66L↑G~α↓Q%&{$
$$:≡B¬≥UX∀Hh!Q$∞≡>]W.f≡M⊗}r
|bπ≡\≥FbπM
⊗v?7!PPh!zDzπ==F.Nh
↔≡N$ε#βS'∧β~Y,⊗rkε!PUε}>6N⊗LTε∞w>|W↔_Q%"RR$	WJε=⎇Vn.nN2ε∂,TεNwL↑'∨ε↑.6."d∧ε.v-␈∩rraQ hS∃dαε6}$¬⊗∞l|Rπ⊗↑>G⊗N>M⊗}w5Dπ&FT
w⊗N⎇≥f∞b∞=vg/M≥vrπ≥}Rπ?-}F*π↑∧π&∞M>2ε}aQ"αε=V≡↑≥lrπ+)←∀fOl↑4Nu]m↔"α}4¬∨/↑%'Oλ←α?~mw∩π>↑ε/↔>V∨~d∧∧F␈|↑f/∩AQ"απM
↔~ε⎇mGJπ⎇}&←~mw∩∧9H∃≥~∞,W∨'-≤7&N⎇n2rα	≤bπ&T¬⊗∞l|U'OTπ∨ε\4εO~mw.vAQ"αε⎇dε
π>\'.v≡Dε6␈$⊗r∧→j5$h8RbπMVrε≡DεF∂4
fz¬O≡εN≡≥HWF∞↑
F,}d∞6f␈D⊗v Q$αεF]l6*εmt¬∨/↑%'Oλ←α?~d∧hR%%"R¬↔$∧F∂lTπN␈T∩π≡<]f∂⊗≥tεNr∞⎇εN≡∧∞FFO4
v≡∨↑.3zαλ≡2πN}Tεv␈L\BbπMRε}mO⊂hP≡
F∞≡T∞vF/,Tε
π,↑7'⊗≤>FN}d7/↔,]g&g∀
V∞↑↑4π≡.n<RεO4f␈∩=F∂∨<↑2αjQQ N⊗≡=⊗≡∞MO∩ε⊗\<↔/≡T	∩ε&≤Mb?"∞<V*ε≥o∩ε␈MW∩π
L⊗≡*∞⎇ε/⊗T∩π⊗↑>G⊗N>M⊗}pQ!⊗nN⎇∞Bε}<>W∩reaPRα		u<-hZ"bπMRε≡⎇l6/πD∞6..↑4π∨&≥MBπ6≥M⊗"b∞=⊗v≡QQ"αε≡DεF∂4∞6}nT∞7/ε↑-⊗␈∩
O↔εN<≥D/F≥↑εf/5dα¬>≡Bε&t∂⊗␈*∞MεNv4
v2ε=⊗v>≥lphR∧∞FF*LV6r
|b¬∨↑W∃'≡λWBα≥f"π,↑7"ε|dε?⊗}↑αJεn-vjQ$ααα∧¬∧≡}↑
w≡OM≥vr¬O≡εN≡≥HWF∞↑
F*¬>↑ε/∀=L↔∨~
O↔εN<≥D/F≥↑εf,|e∩π&qQ"αα∧∧αD≡⎇↑ε␈≡≡M⊗}r
O↔εN<≥D/F≥↑εf*
>Wε/(=F∂∨4	↔≡
∀πphR%%"R∧
]VjαT	⊗v&↑Vv&]nBε}d∞FF*m↔↔∨D∞ε}NnDε∞⊗}lRbπM
↔~ε]≤vG"∞>FNfAQ N⊗T∩ε>⎇|BεNL\∩rαλ⎇↔6.d∞FF∂D
GOε≤<⊗d/≥WεfY|bεO4¬ε/∨<]g&N≥MGJJ∀π∨..=F␈"↓Q N}d	↔≡
¬	∩π&
≥fZJd∧¬&FT∞↔./>M⊗}r≤v∞Nd
↔~b
≡2π&
≡2εv\\F.#t∧¬&F≡4π>NMAPPN\≥6*πMRε≡⎇↑π/&≡M⊗}r
|b¬∨↑W∃'≡λWBα∞
w&.nM⊗∞fO∃∩εn},Rε/∞Vw≡≡lRbε≤dε}vQQ N&∨∀π>*mw⊗n≥MGJε\≥6*∧≡<∩ε
=voεL←απ≡M}Bbα
⎇ε.r∞⎇⊗fb∂≥w*π|≥g"ε∀
7/ε↑*GO∧←↓PPN|dε
εm⎇bo'≡
⊗≡∞L←ε∞o
HSzα¬λ&/N⎇lBπ&≡Bπε}>6N⊗LTε≡∂<Tε}2∞,W∨'-≤7&NlqPPNn-vjε≥dεNw>L⊗v≡Ue⊂hPQ&"rα	∀vjπL]g&∂M≡f.g∀6∞fM≥f:πMRπ≡M}BπN}Tεv∞\\B¬∨↑W∃∨\46r↓Q"ααλmd6␈*lWεNo≥⊗v=,≥f>-,↑7'⊗≤>FN}d¬π.vL↑7~π≥}RεF≡hRε∞d
v⊗V\>FN}e∃`hR%%"R¬>↑&*αT
↔"?4∂⊗␈*∞⎇εz>MDεF∂lTπ&Z∞O↔ε*∞Mε∂"	]v↔J]l⊗n*aQ L↔↑D∧JπM
⊗vZ
≡Bε&|↑2ε≡⎇nf/J∞Mε*ε=}'⊗.>DεN&\∃`hPQ&2rαλmvff}⎇⊗v:=vw6]nFN}eDπ&FTfrε⎇d¬⊗∞l|U'OYv5'≡
⊗≡∞J>V∃.m~CE6↑-⊗7L≥M@hR∧∧π≡.]↑2π&t
F}}4
FN↑T¬∧dX(D
α∞]bπ≡D∞f∞b¬ebujd∧∧O~
~Bπ&Tε≡∂<Tπ&F≡@π&FQQ"αα∞=Bπε≡-RεO4λ∀e<≠~2¬⊗≥lv-'≡Rε6} π&F≡4ε6sqQ"RR%$¬≡␈./∩αj∧.6bπ≡&j∪t∧¬εf\≡6*ε←∞εf∞≥e`hPQ&Brα	≡2π&Tε␈&↑"πε≡-Rε6}$αW6→NV*S*Mt≡}↑∞W&*∞Mε∂"∂≥w*π|↑&*π>V∞↑≥lrε}aQ"αα∧∧αl≤yZ¬-$T
w∩π=⎇V/&
≥f:ε]N6+xQ%"RR$⊗/~¬∞FzπMRε&≡='.v>E∩bε≡Dπ>∂4∞6}n↑MεNvtVg≡W$∧L<iz$*l8_4D*aQ%≡z∞Mε*ε<≥Fbπ=
w.fD&*π=⎇V/&
≥f:εM≥6(h%
¬∀|t¬αG*¬λv/%l≥G.*∞]bα<←→FO6↑9⊗u.m≡Bα:
8∀4-9Iu"J∃⊃PRα∧∧ααα¬∞2αD|↑E6∞N\Rπ.d∧toLM≡f/≤≥j6f␈D∧rE≤_hU≤dzE∩JJ⊃Q"αα¬
$-%Z)bαD|↑E6∞N\Rπ*∞4εαE8_d-≤IzBαBX8∀≤DT¬αg*¬N2JJ¬	∀<tz(Rl≤_9∧*α¬NRαg5∃∩JJ∃⊃PPh+>vFN=¬Bπ.mLW∨~∞Mε*α.4"π≡M}BεO4WF≡↑∞FN}l≥Bbε≡4ε∞⊗}↑Bπ&Tπ≡∞\Tε∂_Q!∩E.m≡D6tzdαD>↑Jf∞g\Tπ.r∧yWLf≡lW≤Nj]fO"∧u¬≤hZ4d⎇E∃⊂hP⊃∀ααD|↑E6∞N\Rπ.d∧toLM≡f/≤≥j6f␈D∧rE≤_hU≤dzE∩Hh!⊃∩ααu
44Z9D⎇"∃∃@hW=}'&
QQ hUMRεNL\∩εO4∞Fz∧_yd⎇∀T∞FF*∞l⊗g.T∞7&␈,\BεNd∞SW~¬URπ&≡Bπ>≥MBε⊗T∞FF(Q%αT&u$∧5≡\ZVvOD∞4}7U∃Bπ>
≤6Bb
≤bεNnlW∨&≤|↔&.EDπ>NMDεf.≤Dπ&z≥bεNlm⊗vOLQPW⊗\>W↔≡≥⎇brα	mw&*∞|Rε&⎇dw"π|≥g"πMtπ∨&},Rπ&
≡2ε≡⎇↑π/&\Dπ6∞N\Rε}d∞SW~¬URεNn>F.∞AQ&O"∞⎇⊗fb,Rπ/∧∞Fzα.l∀g.U'%&|<≤6F-l≥G.*∞Mrε&\=⊗&*∞⎇ε∂"∞Mrε&t∞vO&∧∞FFO5aPTn∨≤&*πM
↔~εn]f∨&≥⎇bε≡}]F"ε\\⊗v&↑$ε∞⊗}↑Bbε≥lBε≡≤=εNvt∞FF*∞l⊗g.T
vvg∀
⊗0h.7%&|<≤6F-l≥G.*∞<⊗N"∞Mrε&t∞6zr∧¬εN*∞=vn/M
⊗v:
M⊗↑(Q%∧dX(D
α∞Ybπ≤D∞db¬ebrJ¬¬"∧v}LRπ≤DπRαWl→G.*%Dε∞vD∞Trε≡4ε
π>\'.v≡EbHh!∃∧
¬	K∩Rαλ|W%6≥NV*αλ|W%6≥NV*πYdα<o→M↔6/9≥e≡f}E∩α=Mx6∞≡Zf∞g\U⊂hP⊃≡Trπ9Dπ4D¬brr∃⊃PPh&Ubα∧≤dε.∞=∧ε}2∞Mε*∧mhf␈∃l↑&N7≥≥f=⊗≥lv-⊗↑>G⊗N>M⊗}rmg~πL≥6/~
⎇fgJ∀πε∞≡!PRα∧
v2π>V∨~≥f"πMRα⊗M⎇wα∩
≡2ε&⎇lRεNd
&∞v|ZGOεY|e'O
≤6∞e>\%.v≡G%6/-≤gL∞ME@hR∧∧π&F≥lw~π<\VjπMtεf}⎇4π≡N↑
F/∩d
6.*≥gO&
≥f:π}-vv:∞⎇↔&B∞MεO≠qQ"RR%$∧JπM
⊗vZ
mw"αT'/"∞W⊗F≡∞2∧J⎇TεW/>Dε≡}lnW≡.Edα∧≡}]F"π≥}Rπ∨]Fbε}↑@hW≥}W∩π∞-wε␈<≥Brα¬	↔"π=}Vv"
M⊗↑*∂≥w*πM
⊗vZ∂≥w*?,Tε>}≥lrπ&t
6./∧
εO'M≥f8h*,⊗v>ZO↔ε,|jGOε≤<⊗e∨\*VvOG*f/⊗≤o∀∞fEDπ>F≤=αεO4	d⎇"∞Mε*ε<≡6*r⊃Q hSedα∧Nd	∩ε∞>NV∞fO∀π/≡T∞FF*λ↑↔.∞Hmw⊗n≡J7ε.4↔ππ-|⊗≡B
≥g∨&\≤Bε}d∞π.wM≥f:π⎇Vph$∧απ&↑&*ε≡=b?"∀εn∂L=αbε←⊗∨&O∀π>F≡Dπ≡F}]F"ε,Tε&}lWrα¬MRεNlmw⊗n≡M⊗}pQ$ααπM↔"ε≡4ε.v<≡π∨.L≡F."
≥bπ&Tπ'⊗≥n66␈-\↔&N⎇dε7.l>FN}dF}/=dw"ε]Gh$∧αεNd∞f/⊗≤o⊗Nvt∞FF∂D∞G>z∞>ε.∨4↔⊗*Z↔.Ol≥F.wD¬ε∂"
LV∂∨D∞Fzε\U∩rα	∀π>␈]LFr?AQ"αα
lV≡/><↔⊗NO∀π&F≥m2π&≡BπN}Tπ>␈]LBπ>≥nBπ&t⊗∨'\≥FgJMrπ&Tπ'⊗≥n66␈-\↔&N⎇aPRα∧⊗v"∞<V*π⎇↔"π,↑7.gN4ε∂~∀π>∂∀
v2πL]FfNltπ>F↑Mε/∩
≡BεO4
F.>≥EbrpQ$αα∧≥N6zεm}Bε≡L\↔∩π⎇W&F↑$π≡}\Tεn∂∞	⊗v:
|bπ&Tπ∨.%↑7ε.>4εv.\N2π&t&*εM⎇f(h$∧α∧$ZλTt∧YjBπ/
⎇bπ&Tπε∂.M⊗∨.L≡"εn≡∞εNvt↔"πM
↔~π]eV/∂\≥Bεf↑lVbreaPRα∧λ⊗wJ]ffN⎇∞F.v\]g#xQ!PRR%%"∧&↑Vv'4
vrπ⎇↔"π≥}Rε≡⎇n6N&↑$π&z,Rε

LV>OM≥V∂&T∞7.↔,≥f>*d∧∧Jbmw∩ε←⊗oεLU@hVl\Vbπ≡\V∂∨∀↔"πMRππ-}7ε.>Dε}2
LW'&≥lrπ≡⎇\W&F≥lrε}df␈⊗\≡B∧5=≥f>f↑Mvrε,Tελh.,W∨'-≤7&N⎇dε}2∀∧5≡↑Dε6␈-\↔"αUTε↔/D∂⊗␈*
→f&N<≡F."∞MεO~
≡2ε∞<<Wπ&≤-F*pQ*ε␈∨=≤&Nf≡O∩ε}lW"ε}mO∩εNl=G.&Tfo#$
vrεm↑CT↑≡V∞dm}&n∂J>ε.~
≤bεOD
↔~ε∀
F.>≥APW⊗↑>GεN>M⊗}r¬URπ&
≡2εn≥<W~πMRπ&≡=2π'-≡fN∞D¬Rjε.↑7"π↑<R∧
:9t~pQ)⊗2π≥}Rπ>≥nBπ&t
⊗v≡N\F*εer formats, then you may have to do something like
include another field - indicating its acceptability as a restriction;
or possibly here's a place when your could use the FormatCharacter slot directly,
(avoiding this EqualFormatSpec altogether): by indicating which of the
characteristics must be the same, or how different.  Yes, 'twould be a bag of
worms, but might be worthwhile in the long run.
-------

Hi.  Any additions to the following list of fns to be recorded when
called from LISPX level?

   AddField  AddValue
   DeleteField
   KillField  KillValue
   PutField  PutValue
   SubstField  SubstValue
   UA-PUT
	**** Why this one?  (/\)
   UA-PUTPROP
	[remember to twiddle EDITU to use this \fn.]

I think I'll assume all changes are written to a single file and a filter
predicate will be applied at load time to pick the ones to be executed.  
	**** Yes, this makes sense.  
	How will you address the case of when a function breaks?
Otherwise there is no (reasonable) way to keep the sequencing straight
between the calls that would appear on several files.
-------

**** Russ

∂13-Jan-82  1912	Steve Klein <SKLEIN at USC-ISIB> 	recording changes    
To: RDG at SU-AI
∂11-Jan-82  1745	MANN at USC-ISIB 	citing our use of RLL 
To:   CSD.LENAT at SU-SCORE
cc:   SKLEIN, RDG at SU-AI

Doug:

Steve Klein has passed on to me a message from Russ, indicating
that you would like to cite our work as consumers or testers of
RLL.

That would certainly be appropriate when we  are  farther  down
the  road,  but  in fact we have not yet accomplished our first
act of testing with RLL.  In terms of the projections which  we
made  in  June, we have not yet done the first 6 weeks of work.
So, aside from being a source of an independent  viewpoint  and
independent  demands,  there  is  not  yet  anything  which  is
technically significant from the project plan point of view.

Many  things  turned  out  to  be  harder than we had imagined.
There were major implementation steps for subfields, and we are
now working with Russ on a revision of range specifications and
checking, making inheritance work right.  There have also  been
delays on both ends that had nothing to do with effort.

We think that we're just a couple of weeks away from having our
minimal toy example running.  Beyond that, we would like to put
in enough knowledge  to  support  generation  of  our  favorite
sentence.  At that point perhaps a citation would be justified.

If we wait until there is an identifyable  accomplishment,  how
does  that fit with your time schedule?  Perhaps we are talking
in real weeks rather than virtual weeks, although,  of  course,
we can't tell.

(Naturally, I'm curious about who the audience is.)

Let  me know if you'd like me to write some paragraphs.  I'd be
happy to.

Cheers.

Bill
-------

∂12-Jan-82  1011	Doug Lenat <CSD.LENAT at SU-SCORE> 	Re:  citing our use of RLL   
To: MANN at USC-ISIB
cc: SKLEIN at USC-ISIB, RDG at SU-AI

Bill,

Thanks, I would appreciate a paragraph or two summarizing your intended
use.  The citation Russ mentioned is not for external use, but
rather for my internal review next month (I come up for reappointment
at Stanford).  We are also about six weeks further along than
we were in June!  Anyway, let me know when/if you run into snags
witht he language.
Regards
Doug
-------